【发布时间】:2013-01-04 00:13:27
【问题描述】:
在我的应用程序中,我有一个CheckBox,我希望在选中时显示一个DataTemplate,在未选中时显示另一个。
这是带有两个模板的 sn-p
<DataGrid x:Name="dataGrid" LoadingRow="dataGrid_LoadingRow_1" ItemsSource="{Binding Item3}"
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding StudentId}"/>
</DataTemplate>
<DataTemplate>
<TextBlock Text="{Binding FullName}"/>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
</DataGrid>
我不确定如何实现它,但我认为我需要用户控件中的接口INotifyPropertyChanged 来触发或确定何时更改。
【问题讨论】:
-
查找
DataTemplateSelector,我认为它应该很好地满足您的需求。 -
好吧,这不是我真正的疑问,我的意思是,我希望复选框状态发生变化时,触发数据模板选择器
-
我明白了。好吧,一种选择是创建一个派生自
ContentControl的类,具有三个依赖属性:两个DataTemplate类型用于模板,一个bool绑定到CheckBox.IsChecked。然后,此控件可以根据Boolean-property 的值设置适当的模板,并在依赖属性更改时更新模板。然后将此类的一个实例放入RowHeaderTemplate的DataTemplate并添加适当的绑定。
标签: c# wpf xaml datagrid datatemplate