【发布时间】:2017-01-28 11:05:28
【问题描述】:
我这里有个情况。
我有一个带有复选框的 ListView。复选框被定义为数据模板。 我有另一个堆栈面板,它包含一个按钮。我的要求是,最初当窗口加载时,没有选中任何复选框并且应该禁用按钮。 当用户单击任何一个复选框时,应启用按钮。 当用户取消选中所有复选框时,应禁用按钮。
我正在使用 MVVM 模式和牛框架。借助事件,我可以实现此功能。
但我的问题是,我们能否在 xaml 本身中处理这种情况。可能正在使用触发器或转换器?
我是 WPF 新手,对 WPF 没有深入的了解。任何帮助表示赞赏。
我尝试过使用触发器。但由于复选框位于 ListView 内并定义为数据模板,我无法从按钮样式访问复选框的元素名称。
大致轮廓如下
<ListView x:Name="MylistView" ItemsSource="{Binding Collection}" Height="250"
SelectionMode="Single"
BorderBrush="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox x:Name="Checkbox" Content="{Binding Description}" IsChecked="{Binding IsEnable, Mode=TwoWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel Orientation="Horizontal">
<Button x:Name="Save" Content="{l:Language Key=SAVE}" Width="50" Height="25" Margin="10"
Command="{Binding Updpate, Source={StaticResource proxy}}">
<Button.Style>
//How do i refer checkbox from this level. I get only "Mylistview" control at this level
</Button.Style>
</Button>
</StackPanel>
提前致谢
【问题讨论】: