【发布时间】:2016-05-09 15:41:32
【问题描述】:
我为 GridView 的 GridViewColumn 创建了一个附加属性来隐藏/显示整个列。
<GridViewColumn att:Visibility.IsVisible="{Binding ...}">
只要附加属性绑定到的属性存在于我的主视图模型(我的 gridView 的数据上下文)中,这就会起作用。 在一种情况下,列的可见性取决于我的列表项的属性(集合中的一个项目,它是我的 gridview 的 itemsource)。 我如何在这里绑定? 我可以访问 gridviewcolumn 的单元格模板内的项目属性,但不能访问 gridviewcolumn 本身。
我想要实现的是,我可以将附加属性绑定到我的列表项的属性。 有没有办法做到这一点?
编辑: 假设我有一堂课:
public class Item : INotifyPropertyChanged
{
private string m_Text;
public string Text
{
get
{
return m_Text;
}
set
{
m_Text= value;
RaisePropertyChanged("Text");
}
}
private bool m_IsVisible;
public bool IsVisible
{
get
{
return m_IsVisible;
}
set
{
m_IsVisible = value;
RaisePropertyChanged("IsVisible");
}
}
}
现在我有一个此类的 ObservableCollection 作为我的 ListView/GridView 的 ItemsSource。
public ObservableCollection<Item> Items;
在我的 xaml 中:
<ListView ItemsSource={Binding Items}>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn att:Visibility.IsVisible="{Binding /*What goes here? Should bind to IsVisible of my Collection Item*/}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text={Binding Text"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView/>
gridviewcolumn 的可见性现在应该取决于我的收藏项的“IsVisible”值。那个事件可能吗?
【问题讨论】:
-
请发布您的列表属性
标签: wpf gridview data-binding