WPF ObservableCollection 项的
WPF ObservableCollection Item's
我有一个绑定到 ListView 的 ObservableCollection:
private ObservableCollection<Cost> m_Costs;
public ObservableCollection<Cost> DatabaseRecords
{
get { return m_Costs; }
}
和
<ListView x:Name="ListView" ItemsSource="{Binding DatabaseRecords, UpdateSourceTrigger=PropertyChanged}">
当我添加或删除项目时,UI 会刷新,没关系。但是,如果我更改集合中某个项目的 属性 怎么办?我有一个 DataTrigger,它根据 属性:
处理格式化项目
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Status, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="Removed">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
如果我更改状态 属性,UI 不会刷新。
m_Costs[0].Status = UIStatus.Removed;
知道如何使用绑定来刷新吗?
对于您的 ObservableCollection,您不需要实施 INotifyPropertyChanged,因为它已经 observable.
但是对于你的 Status 属性 你需要实现它,否则你的 View 将不知道 属性 被改变了。
我有一个绑定到 ListView 的 ObservableCollection:
private ObservableCollection<Cost> m_Costs;
public ObservableCollection<Cost> DatabaseRecords
{
get { return m_Costs; }
}
和
<ListView x:Name="ListView" ItemsSource="{Binding DatabaseRecords, UpdateSourceTrigger=PropertyChanged}">
当我添加或删除项目时,UI 会刷新,没关系。但是,如果我更改集合中某个项目的 属性 怎么办?我有一个 DataTrigger,它根据 属性:
处理格式化项目<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Status, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="Removed">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
如果我更改状态 属性,UI 不会刷新。
m_Costs[0].Status = UIStatus.Removed;
知道如何使用绑定来刷新吗?
对于您的 ObservableCollection,您不需要实施 INotifyPropertyChanged,因为它已经 observable.
但是对于你的 Status 属性 你需要实现它,否则你的 View 将不知道 属性 被改变了。