有的时候在XAML里面创建一个通用的DataTemplate比较麻烦,例如在DataTemplate里面有一个控件需要绑定到不同的属性里面,例如下面的代码:
<DataTemplate x:Key="TestDataTemplate"> <TextBox Width="200" Text="{Binding Path=XXX}" /> </DataTemplate>
<ListView x:Name="TestDataGrid"> <ListView.View> <GridView> <GridViewColumn Header="Name" CellTemplate="{StaticResource TestDataTemplate}"/> <GridViewColumn Header="Gender" CellTemplate="{StaticResource TestDataTemplate}"/> <GridViewColumn Header="Birthday" CellTemplate="{StaticResource TestDataTemplate}"/> </GridView> </ListView.View> </ListView> |
你希望重用TestDataTemplate,里面的TextBox的Binding的路径可以根据应用的GridViewColumn而改变。这种情况下,我能想到的方法可能就是使用代码的方式来创建DataTemplate了,使用代码的方式给你很大的可定制性—虽然MSDN不推荐使用代码的方式创建DataTemplate(http://msdn.microsoft.com/en-us/library/system.windows.frameworkelementfactory.aspx)。