簡體   English   中英

使用帶有Reactivui的WPF DataGrid

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM