[英]Using a WPF DataGrid with Reactivui
我正在嘗試將WPF DataGrid綁定到ReactiveList。 不幸的是,綁定不顯示任何行。
我也嘗試使用普通的List作為數據源。 我還嘗試了AutoGenerateColumn函數,並使用Binding到AuswertungsEntry的屬性(只有getter,沒有setter)。 但是這些屬性在運行時從未被訪問過。
我的view.xaml:
...
<DataGrid x:Name="AuswertungGrid" Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="Fehler" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Header=" 1. Auswertung" Binding="{Binding ok1}"></DataGridTextColumn>
<DataGridTextColumn Header=" 1. Auswahl"></DataGridTextColumn>
<DataGridTextColumn Header=" 2. Auswertung"></DataGridTextColumn>
<DataGridTextColumn Header=" 2. Auswahlt"></DataGridTextColumn>
<DataGridTextColumn Header=" Gesamt"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我在view.xaml.cs中的綁定:
this.WhenActivated((d) =>
{
this.OneWayBind(ViewModel,
viewModel => viewModel.Entries,
view => view.AuswertungGrid.ItemsSource)
.DisposeWith(d);
}
我的ViewModel:
...
private readonly ObservableAsPropertyHelper<ReactiveList<AuswertungsEntry>> _Entries;
public ReactiveList<AuswertungsEntry> Entries => _Entries.Value;
public AuswertungViewModel()
{
_Entries = this.WhenAnyValue(x => x.Data)
.Where(x => x != null)
.SelectMany(x => CreateDataSource())
.ToProperty(this, x => x.Entries);
}
public async Task<ReactiveList<AuswertungsEntry>> CreateDataSource()
{
return await AuswertungsService.GetAuswertung();
}
...
服務正在返回正確的數據。 我已經檢查過了。 但是沒有生成行,不是使用GenerateAutoColumn功能也不是手動生成。
我希望,DataGrid會充滿所提供的數據。
ReactiveList<T>
在ReactiveUI項目中暫時被棄用。
其中一個問題是它不會以WPF始終期望的方式生成INotifyCollectionChanged事件,尤其是在添加基於范圍的值時。
如果你需要改變數據,我建議你使用SourceList<T>
,否則使用ObservableCollection<T>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.