1
我有一個DataTrigger應用樣式到DataGrid行的Visibility屬性。 DataTrigger在DataGrid的初始綁定上工作得很好(即 - 如果FilteredOut爲true,它將行可見性設置爲摺疊狀態)。DataGrid.RowStyle只適用於初始綁定
我有一個組合框的FilteredOut屬性設置爲true或false爲每個項目取決於什麼用戶在ComboBox已經選擇了的ObservableCollection AllPartMalfunctions。
這裏是我的問題:在組合框中選擇一個項目並設置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>
這裏是視圖模型到的數據網格被綁定:
public class Malfunctions : ViewModelBase {
public ObservableCollection<Model.PartMalfunction> AllPartMalfunctions {
get;
private set;
}
}
這裏是PartMalfunction型號:
public class PartMalfunction {
private bool _filteredOut = false;
public bool FilteredOut {
get {
return _filteredOut;
}
set {
_filteredOut = value;
}
}
}
這正是我所需要的。由於這樣的有用答案,WPF對我而言每天都變得不那麼神祕。謝謝,JH! – Jagd