SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(1)--说明篇(原创)(转载本文请注明出处)
本文主要示例如何在xaml文件中操作用户使用C#代码自定义的类。主要步骤如下:
1、在VS2008中创建一个新项目CustomTypesInXaml,在此项目下我们新建两个类,一个是Client类,一个是AsiaClients类。两个类的代码分别如下:
Client.cs代码:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
AsiaClient.cs代码,此类将会用到我们前面定义的Client类,是Client类的列表
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
(1)、在xaml头部引入 xmlns:ClientType="clr-namespace:CustomTypesInXaml",这样我们才能够在page.xaml文件中使用我们前面C#定义的两个类。
(2)、创建UserControl.Resources段
<UserControl.Resources>
<ClientType:AsiaClients x:Key="MyAsianClients">
<ClientType:AsiaClients.TheAsiaClient>
<ClientType:Client FirstName="Joe" LastName="Zhou" Age="32"/>
<ClientType:Client FirstName="David" LastName="Wang" Age="33"/>
<ClientType:Client FirstName="Josh" LastName="Li" Age="28"/>
</ClientType:AsiaClients.TheAsiaClient>
</ClientType:AsiaClients>
</UserControl.Resources>
在此段中我们引用了前面使用C#代码定义的两个类并在此处完成对此两个类的初始化赋值。<ClientType:AsiaClients x:Key="MyAsianClients">
<ClientType:AsiaClients.TheAsiaClient>
<ClientType:Client FirstName="Joe" LastName="Zhou" Age="32"/>
<ClientType:Client FirstName="David" LastName="Wang" Age="33"/>
<ClientType:Client FirstName="Josh" LastName="Li" Age="28"/>
</ClientType:AsiaClients.TheAsiaClient>
</ClientType:AsiaClients>
</UserControl.Resources>
(3)、在UI部分完成界面设计和数据绑定,在此我们设计了一个List,并把它我我们在上面创建的数据进行绑定显示,此段代码如下:
<Grid x:Name="LayoutRoot" Background="White">
<ListBox
DataContext="{StaticResource MyAsianClients }"
ItemsSource="{Binding TheAsiaClient}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding FirstName}" Margin="5,0,0,0" ></TextBlock>
<TextBlock Text="{Binding LastName}" Margin="5,0,0,0" ></TextBlock>
<TextBlock Text="{Binding Age}" Margin="5,0,0,0" ></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Page.xaml文件的全部代码如下:
<ListBox
DataContext="{StaticResource MyAsianClients }"
ItemsSource="{Binding TheAsiaClient}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding FirstName}" Margin="5,0,0,0" ></TextBlock>
<TextBlock Text="{Binding LastName}" Margin="5,0,0,0" ></TextBlock>
<TextBlock Text="{Binding Age}" Margin="5,0,0,0" ></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
前往:Silverlight学习笔记清单