added samples
[windows-sources.git] / sdk / samples / WPFSamples / SamplesGallery / csharp / samps / compositecollections_samp.xaml
blobcaaccdaf89bbdff3f3309f74af89b4a1a305baf7
1 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3       Title="Composite Collections"
4       x:Class="CompositeCollections.Page1"
5       Loaded="checkLang">
6 <TabControl MinHeight="500" MaxHeight="700" MinWidth="400">
7         <TabItem Style="{StaticResource TabStyle}" Header="Composite Collections Sample" IsSelected="true">
8           <StackPanel>
9             <TextBlock Style="{StaticResource HeaderStyle}">Composite Collections Sample</TextBlock>
11             <TextBlock Style="{StaticResource mainContentStyle}">This sample shows how to implement data binding using collections composed of mixed types of data.</TextBlock>
13           </StackPanel>
14         </TabItem>
16         <TabItem Name="xaml" Style="{StaticResource TabStyle}" Header="XAML">
18           
20         </TabItem>
21         <TabItem Name="xamlcsharp" Style="{StaticResource TabStyle}" Header="XAML + C#">
22           <TabControl TabStripPlacement="Right">
23             <TabItem Name="xcsharpCheck" Style="{StaticResource TabStyle2}" Header="XAML">
24                 <ScrollViewer HorizontalScrollBarVisibility="Visible">
25                 
26               <TextBox Style="{StaticResource CodeSnippetParagraph}" xml:space="preserve">
27 &lt;Window Background="Cornsilk"
28   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
29   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
30   xmlns:c="clr-namespace:CompositeCollections"
31   x:Class="SDKSample.CompositeCollections"
32   Title="CompositeCollections"
33   Width = "320"
34   Height = "430"
35   >
36   &lt;Window.Resources>
37     &lt;c:GreekGods x:Key="GreekGodsData"/>
39     &lt;XmlDataProvider x:Key="GreekHeroesData" XPath="GreekHeroes/Hero">
40       &lt;GreekHeroes xmlns="">
41         &lt;Hero Name="Jason" />
42         &lt;Hero Name="Hercules" />
43         &lt;Hero Name="Bellerophon" />
44         &lt;Hero Name="Theseus" />
45         &lt;Hero Name="Odysseus" />
46         &lt;Hero Name="Perseus" />
47       &lt;/GreekHeroes>
48     &lt;/XmlDataProvider>
49                 
50     &lt;DataTemplate DataType="{x:Type c:GreekGod}">
51       &lt;TextBlock Text="{Binding Path=Name}" Foreground="Gold"/>
52     &lt;/DataTemplate>
53     &lt;DataTemplate DataType="Hero">
54       &lt;TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/>
55     &lt;/DataTemplate>
56         &lt;/Window.Resources>
57         
58   &lt;StackPanel>
59     &lt;TextBlock FontSize="18" FontWeight="Bold" Margin="10"
60       HorizontalAlignment="Center">Composite Collections Sample&lt;/TextBlock>
61     &lt;ListBox Name="lbGodsAndHeroes" Height="300" Width="200" Background="White">
62       &lt;ListBox.ItemsSource>
63         &lt;CompositeCollection>
64           &lt;CollectionContainer Collection="{Binding Source={StaticResource GreekGodsData}}" />
65           &lt;CollectionContainer Collection="{Binding Source={StaticResource GreekHeroesData}}" />
66           &lt;ListBoxItem Foreground="Red">Other Listbox Item 1&lt;/ListBoxItem>
67           &lt;ListBoxItem Foreground="Red">Other Listbox Item 2&lt;/ListBoxItem>
68         &lt;/CompositeCollection>
69       &lt;/ListBox.ItemsSource>
70     &lt;/ListBox>
71   &lt;/StackPanel>
73 &lt;/Window>
74                 
75                 
76               </TextBox>
77                     </ScrollViewer>
78             </TabItem>
79             <TabItem Style="{StaticResource TabStyle2}" Header="C#">
80                 <ScrollViewer HorizontalScrollBarVisibility="Visible">
81                 
82               <TextBox Style="{StaticResource CodeSnippetParagraph}" xml:space="preserve">
83 using System;
84 using System.ComponentModel;
85 using System.Windows;
86 using System.Windows.Controls;
87 using System.Windows.Documents;
88 using System.Windows.Navigation;
89 using System.Windows.Shapes;
90 using System.Windows.Data;
92 namespace SDKSample
94         public partial class Window1 : Window
95         {
96                 public Window1()
97                 {
98                         InitializeComponent();
99                 }
100         }
102         public class GreekGod
103         {
104     private string _name;
106                 public string Name
107                 {
108       get
109       {
110         return _name;
111       }
113       set
114       {
115         _name = value;
116       }
117                 }
119     public GreekGod(string name)
120     {
121       Name = name;
122     }
123         }
125         public class GreekGods : ObservableCollection&lt;GreekGod>
126         {
127                 public GreekGods()
128                 {
129                         Add(new GreekGod("Aphrodite"));
130                         Add(new GreekGod("Apollo"));
131                         Add(new GreekGod("Ares"));
132                         Add(new GreekGod("Artemis"));
133                         Add(new GreekGod("Athena"));
134                         Add(new GreekGod("Demeter"));
135                         Add(new GreekGod("Dionysus"));
136                         Add(new GreekGod("Hephaestus"));
137                         Add(new GreekGod("Hera"));
138                         Add(new GreekGod("Hermes"));
139                         Add(new GreekGod("Poseidon"));
140                         Add(new GreekGod("Zeus"));
141                 }
142         }
144                 
145                 
146               </TextBox>
147                     </ScrollViewer>
148             </TabItem>
149           </TabControl>
150         </TabItem>
152         <TabItem Name="xamlvb" Style="{StaticResource TabStyle}" Header="XAML + Visual Basic.NET">
153           <TabControl TabStripPlacement="Right">
154             <TabItem Name="xvbCheck" Style="{StaticResource TabStyle2}" Header="XAML"></TabItem>
155             <TabItem Style="{StaticResource TabStyle2}" Header="VB.NET"></TabItem>
156           </TabControl>
157         </TabItem>
158     
159         <TabItem Name="csharp" Style="{StaticResource TabStyle}" Header="C#"></TabItem>
160     
161         <TabItem Name="vb" Style="{StaticResource TabStyle}" Header="Visual Basic.NET"></TabItem>
163         <TabItem Name="managedcpp" Style="{StaticResource TabStyle}" Header="Managed C++"></TabItem>
164     
165         <TabItem Style="{StaticResource TabStyle}" Header="Preview Sample">
167 <Canvas Background="Cornsilk"
168   xmlns:c="clr-namespace:CompositeCollections"
169   Width = "320"
170   Height = "430"
171   >
172   <Canvas.Resources>
173     <c:GreekGods x:Key="GreekGodsData"/>
175     <XmlDataProvider x:Key="GreekHeroesData" XPath="GreekHeroes/Hero">
176       <x:XData>
177       <GreekHeroes xmlns="">
178         <Hero Name="Jason" />
179         <Hero Name="Hercules" />
180         <Hero Name="Bellerophon" />
181         <Hero Name="Theseus" />
182         <Hero Name="Odysseus" />
183         <Hero Name="Perseus" />
184       </GreekHeroes>
185       </x:XData>
186     </XmlDataProvider>
187                 
188     <DataTemplate DataType="{x:Type c:GreekGod}">
189       <TextBlock Text="{Binding Path=Name}" Foreground="Gold"/>
190     </DataTemplate>
191     <DataTemplate DataType="Hero">
192       <TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/>
193     </DataTemplate>
194         </Canvas.Resources>
195         
196   <StackPanel>
197     <TextBlock FontSize="18" FontWeight="Bold" Margin="10"
198       HorizontalAlignment="Center">Composite Collections Sample</TextBlock>
199     <ListBox Name="lbGodsAndHeroes" Height="300" Width="200" Background="White">
200       <ListBox.ItemsSource>
201         <CompositeCollection>
202           <CollectionContainer Collection="{Binding Source={StaticResource GreekGodsData}}" />
203           <CollectionContainer Collection="{Binding Source={StaticResource GreekHeroesData}}" />
204           <ListBoxItem Foreground="Red">Other Listbox Item 1</ListBoxItem>
205           <ListBoxItem Foreground="Red">Other Listbox Item 2</ListBoxItem>
206         </CompositeCollection>
207       </ListBox.ItemsSource>
208     </ListBox>
209   </StackPanel>
211 </Canvas>
214         </TabItem>
215       </TabControl>
217 </Page>