【发布时间】:2011-09-28 22:07:07
【问题描述】:
我有一个 UserControl,它的 DataContext 设置为另一个名为 HostConext 的类。
在 HostContext 我有以下属性:
public Visibility IsOutcomesVisible
{
get { return _isOutcomesVisible; }
set { _isOutcomesVisible = value; OnPropertyChanged("IsOutcomesVisible"); }
}
我的 XAML 包含如下所示的 DataGrid:
<dg:DataGrid Grid.Row="0" ItemsSource="{Binding Path=Payments}">
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Header="Payment Date" Binding="{Binding PaymentDate,StringFormat={}\{0:yyyy/MM/dd\}}"/>
<dg:DataGridComboBoxColumn Header="Outcome" SelectedItemBinding="{Binding Outcome}"
Visibility="{Binding Path=DataContext.IsOutcomesVisible}">
....
</dg:DataGridComboBoxColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
数据网格的 ItemSource 设置为 Payment 对象的 ObservableList,并且每一列都绑定其中的属性。但是,问题是我需要根据 UserControl 的 DataContext 中的属性隐藏(或禁用)Outcomes 列。
这里有人知道如何实现吗?我真的不想将“IsOutcomesVisible”属性放在 Payments 类中:(
【问题讨论】:
-
上面的代码对我来说还可以吗?在绑定中使用 DataContext.IsOutcomesVisible 时它不起作用吗?
-
不关注。如果你的意思是 Visibility="{Binding DataContext.IsOutcomesVisible},不 :(
-
使用下面的答案有什么运气吗?
-
@NickHeidke 在下面看到我的回答