Thanks again

 

After doing it programmatically I might use your solution with a collection
that is bindable and put my template back in.

i.e. http://msdn.microsoft.com/en-us/library/ms748365.aspx.

Its a lot easier to work with a collection than work with UI elements.

 

Suppose I should  have done it that way in the first place but I like to
know how things work under the hood, so to speak.

 

WPF is much better than WinForms but the learning curve is much steeper.

I have been able to accomplish things with WPF that I could dream about with
WinForms.

Still have  a lot to learn.

 

Regards Peter.

 

From: [email protected] [mailto:[email protected]] On
Behalf Of Jack Ukleja
Sent: Thursday, 3 March 2011 2:23 PM
To: ozWPF
Subject: Re: Adding ListBoxItems to a listbox programmatically

 

Hi Peter,

 

As far as I'm aware the ItemTemplate wont be used unless there is an actual
data "item" to template. In other words an "item" in the ItemsSource (which
you are not using) or an "item" in the Items collection. 

 

If you are adding ListBoxItem directly to Items (a special case) then I'm
not certain ItemTemplate will be used - you might need to set it manually on
each ListBoxItem you create by using the ContentTemplate. This might get
complicated quickly and Im not sure what you are winning.

 

I know its annoying when people say "why are you doing it like that?" but
might I suggest binding will work fine in this scenario?

 

Prompting, parsing, validating, ensuring no duplicates can all still be done
the way you specified... just at the end of it all add it to a
ObservableCollection that is used purely for binding from the view. Bind
your ListBox.ItemsSource to that collection, and the code you have above
should just work (ListBoxItems will be created automatically to wrap the
item).

 

Cheers,

Jack

On Thu, Mar 3, 2011 at 2:54 PM, Peter Maddin <[email protected]>
wrote:

I would like to be add ListBoxItems to a ListBox.

I don't want to bind the items to a data source. I need to have more control
than that.

 

In fact what I need to do is to add a ListBoxItem I need to

.         Prompt user for a file.

.         Parse the file for a some data items (XML attributes)

.         If its ok, then create a new ListBoxItem containing some of these
attributes

.         Check that the same item has not been already added, if so prompt
the user to replace it.

.         If it does not already exist, add the ListBoxItem to the ListBox.

 

I would like to add nicely formatted ListBoxItems with a border that has
rounded corners etc.

 

I am not sure how to create a new ListBoxItem.

 

The XAML I am starting with is

 

            <ListBox  Margin="10" Name="listBoxKeys">

                <ListBox.ItemTemplate>

                    <DataTemplate>

                        <Border>

                            <StackPanel Orientation="Horizontal">

                                <!--<CheckBox IsChecked="{Binding
Deleteable, Mode=TwoWay}" />-->

                                <CheckBox IsChecked="False" />

                                <!--<Label Content="{Binding Name}" />-->

                                <Label x:Name="Client" />

                                <Label x:Name="Generated" />

                                <Label x:Name="Description" />

                            </StackPanel>

                        </Border>

                    </DataTemplate>

                </ListBox.ItemTemplate>

            </ListBox>

 

How do I create a new ListBoxItem that conforms to this template?

 

Any help very much appreciated.

 

Regards Peter Maddin
Applications Development Officer
PathWest Laboratory Medicine WA
Phone : +618 6396 4285
Mobile: 0414 240 307 
E-Mail : [email protected]; [email protected]
The contents of this e-mail transmission outside of the WAGHS network are
intended solely for the named recipient's), may be confidential, and may be
privileged or otherwise protected from disclosure in the public interest.
The use, reproduction, disclosure or distribution of the contents of this
e-mail transmission by any person other than the named recipient(s) is
prohibited. If you are not a named recipient please notify the sender
immediately.

 

 


_______________________________________________
ozwpf mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf

 

_______________________________________________
ozwpf mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf

Reply via email to