WPF用List绑定类

本文关键字:绑定 List WPF | 更新日期: 2023-09-27 17:51:22

我有一个包含另一个类的List的表示类。我如何在WPF DataGrid中显示列表类的内容?

namespace AktieAnalyse.TekniskAnalyse.RSI
{
  public class RSI
  {
    public decimal xAntalDageRsi { get; set; }
    public decimal NiDagesRsi { get; set; }
    public decimal FjortenDagesRsi { get; set; }
    public decimal NiogfyrreDagesRsi { get; set; }
    public decimal EthundreogHalvtressDagesRsi { get; set; }
  }
}
namespace AktieAnalyseWPFUserControls.View.Presentation
{
  public class RSI
  {
    public int IdVirksomhedensStamdata { get; set; }
    public string VirksomhedensNavn { get; set; }
    public List<AktieAnalyse.TekniskAnalyse.RSI.RSI> RsiListe { get; set; }
  }
}

在WPF中,"VirksomhedsNavn"工作正确,但不"RsiListe"。NiDagesRsi":

<DataGrid x:Name="dataGrid_Rsi" ItemsSource="{Binding}" >
    <DataGrid.Columns>
    <DataGridTextColumn Header="Virksomhedsnavn" Binding="{Binding Path=VirksomhedensNavn}" />
    <DataGridTextColumn Header="RSI 9" Binding="{Binding Path=RsiListe.NiDagesRsi}">

如果我试过:

    <DataGridTextColumn Header="RSI 9" Binding="{Binding Path=RsiListe[0].NiDagesRsi}">

它工作(当然只在第一行)。我怎样才能使它在所有行上工作?

WPF用List绑定类

似乎您的视图模型是RSI类型的类?尝试后。

<DataGrid x:Name="dataGrid_Rsi" ItemsSource="{Binding RsiListe}" >
  <DataGrid.Columns>
  <DataGridTextColumn Header="RSI 9" Binding="{Binding Path=NiDagesRsi}">

你还能解释为什么你想从视图模型和列表绑定到数据网格吗?也可能是一个好主意,不要有两个类命名为RSI,如果它的首字母缩略词可能是一个好主意,写冗长模式。

建议将列表绑定到ObservableCollection<T>而不是列表。

这在内部实现了INotifyPropertyChanged,所以当您设置列表的内容时,它将更新GUI。

相关文章: