我正在尝试使用样式来防止重复代码,方法是将它们放入Resource Disctionary中。
我的问题是,当我们在ListView中有一个GridViewColumn,其中一个列有一个DataTemplate,而在那个DataTemplate中我们只有一个CheckBox的CellTemplate时,我们可以在DataTemplete处于一个时绑定CheckBox状态的ResourceDictionary?
我在XAML中拥有的是什么:
<ListView Name="listView">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn DisplayMemberPath="{Binding [1]}"/>
<GridViewColumn DisplayMemberPath="{Binding [2]}"/>
<GridViewColumn DisplayMemberPath="{Binding [4]}"/>
<GridViewColumn DisplayMemberPath="{Binding [5]}"/>
<GridViewColumn DisplayMemberPath="{Binding [6]}"/>
<GridViewColumn DisplayMemberPath="{Binding [7]}"/>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsThreeState="False" IsChecked="{Binding [8]}" Unchecked="CheckBox_Changed" Checked="CheckBox_Changed"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我正在尝试在资源字典中执行类似的操作:
<DataTemplate x:Key="ListViewCheckboxCell">
<StackPanel>
<CheckBox IsThreeState="False" IsChecked="Make reference"/>
</StackPanel>
</DataTemplate>
该列中的值始终是一个bool。
提前致谢!
答案 0 :(得分:1)
你所做的似乎是正确的。你现在必须写
<GridViewColumn CellTemplate="{StaticResource ListViewCheckboxCell}" />
模板将被考虑在内,您可以在资源字典中保留与原始模板完全相同的模板:绑定是动态解析的,因此当读取XAML时,绑定将自动设置为相关对象,按照你的指示