【发布时间】:2018-09-24 15:31:28
【问题描述】:
我需要在同一个数据网格单元格中有三个组合框,如下所示:
<Grid Name="gridFormat_1" Grid.Row="1" Grid.Column="6" Margin="0, 5, 5, 5" >
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Name="monthsCB" DisplayMemberPath="MonthName" IsEnabled="False" Opacity="0" />
<ComboBox Grid.Row="0" Name="quartalsCB" DisplayMemberPath="QuartalNumber" IsEnabled="False" Opacity="0" />
<ComboBox Grid.Row="0" Name="yearsCB" DisplayMemberPath="Year" IsEnabled="False" Opacity="0" />
</Grid>
我希望能够在给定时间显示/隐藏某些组合框。但是,尽管 Opacity 和 IsEnabled、隐藏/显示、禁用/启用除我选择的组合框之外的每个组合框,但我无法单击“yearsCB”下方的组合框,因为它是最后添加的。
这意味着其他两个组合框不接收鼠标事件。
我发现我应该使用其他一些 WPF 标记来包装我的组合框,这样我就可以在每个组合框上切换 ZIndex。
哪个标签可以让我操作 Canvas 或 ZIndex?
或者还有其他更好的方法来实现这一点吗?
【问题讨论】:
-
更新单个组合框的 DisplayMemberPath 是否比尝试管理 z 顺序更容易?无论如何,这不是你要做的吗?基本上将 DisplayMemberPath 绑定到单个属性并根据业务逻辑更新该属性。
-
wpf 中的DataTriggers 可以解决你的问题。只需描述一个场景,您希望组合框何时可见/隐藏。
-
@sous2817 我只有一个组合框,我用月份、夸脱和年份动态填充。我正在工作,但它与 GUI 混合在一起。现在尝试使用 MVVM 和 INotifyPropertyChanged,但如果组合框中值的数据类型动态变化,则不确定如何将单个组合框绑定到单个属性。
-
@Sham 我问了这个问题stackoverflow.com/questions/52481109/…