gpt4 book ai didi

wpf - DataGrid.RowStyle 仅适用于初始绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 10:27:52 24 4
gpt4 key购买 nike

我有一个 DataTrigger 将样式应用于 DataGrid 行的 Visibility 属性。 DataTrigger 在 DataGrid 的初始绑定(bind)上工作得很好(即 ​​- 如果 FilteredOut 为真,它将行可见性设置为折叠)。

我有一个 ComboBox,它根据用户在 ComboBox 中选择的内容,将 ObservableCollection AllPartMalfunctions 中的每个项目的 FilteredOut 属性设置为 true 或 false。

这是我的问题:在 ComboBox 中选择一个项目并为每个项目设置 FilteredOut 属性后, DataGrid 行不会刷新为可见或折叠 UI 上的所有内容看起来都与在 ComboBox 中选择任何内容之前相同。我错过了什么?

这是 XAML:

<DataGrid ItemsSource="{Binding AllPartMalfunctions}"
AutoGenerateColumns="False" Width="Auto">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding FilteredOut, Mode=TwoWay}" Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding FilteredOut, Mode=TwoWay}" Value="False">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<!--removed for brevity-->
</DataGrid.Columns>
</DataGrid>

这是 DataGrid 绑定(bind)到的 ViewModel:
public class Malfunctions : ViewModelBase {
public ObservableCollection<Model.PartMalfunction> AllPartMalfunctions {
get;
private set;
}
}

这是零件故障模型:
public class PartMalfunction {
private bool _filteredOut = false;
public bool FilteredOut {
get {
return _filteredOut;
}
set {
_filteredOut = value;
}
}
}

最佳答案

“PartMalfucntion”类需要实现 System.ComponentModel.INotifyPropertyChanged 并在 FilteredOut 的值更改时触发 PropertyChanged 事件。

public class PartMalfunction : System.ComponentModel.INotifyPropertyChanged
{
#region INotifyPropertyChanged Members
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
#endregion

private bool _filteredOut = false;
public bool FilteredOut
{
get {
return _filteredOut;
}
set {
_filteredOut = value;
if (PropertyChanged != null)
PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs("FilteredOut"));
}
}
}

关于wpf - DataGrid.RowStyle 仅适用于初始绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com