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 将不知道 属性 被改变了。