【发布时间】:2013-07-16 23:37:49
【问题描述】:
我有一个UserControl,其中我有一个DataDrid,在那个DataGrid 中我有两个ComboBoxes。现在我想做的是,当我从ComboBoxes 中选择任何项目时,DataGrid 之外的按钮应该被启用。
我的DataGrid 绑定到ItemSource,组合框也是如此。
我尝试使用MuliDatatriggers,但它们失败了,因为按钮在DataGrid 之外,所以那些ComboBoxes 将无法使用。
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Width="Auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="Combo1" ItemsSource="{Binding Lst1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Code1" SelectedValue="{Binding CodeID1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<ComboBox Name="Combo2" ItemsSource="{Binding Lst2,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Code2" SelectedValue="{Binding CodeID2,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Button Name="Add" IsEnabled="{Binding IsAddEnabled,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
【问题讨论】:
-
Farzi - 如果答案对您有帮助 - 请点赞。如果这是解决方案 - 也接受它
-
因为今天你有 6 个问题和 0 个接受的答案!
-
没有。您提供的网址没有回答我的问题。我的按钮在 Datagrid 之外,因此使用 DataTriggers 并为 Combobox 提供元素名称将无济于事,因为它们在 datagrid 内,而按钮在 dataGrid 之外。所以它不会有帮助。但是如果我们可以使用相对源属性可能会有所帮助..但我不知道如何在数据触发器中使用它,因为每当我使用它时都会给我一个异常
-
你可以在你的应用程序中使用 MVVM 吗?这样您就可以在 ViewModel 中实现启用逻辑
-
我正在使用 MVVM,您可以看到我在问题中提到的 TAG。这是我正在谈论的用户控件。所以所有功能都在代码后面完成
标签: c# wpf data-binding mvvm user-controls