我有一个表示类,包含其他类的List。如何在WPF DataGrid中显示List类的内容?
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}">
它有效(当然只在第一行)。如何让它在所有行上运行?
答案 0 :(得分:1)
您的viewmodel似乎是RSI类型的类?试试以下。
<DataGrid x:Name="dataGrid_Rsi" ItemsSource="{Binding RsiListe}" >
<DataGrid.Columns>
<DataGridTextColumn Header="RSI 9" Binding="{Binding Path=NiDagesRsi}">
您还可以解释为什么要从viewmodel和列表绑定到datagrid吗?也可能是一个好主意,没有两个名为RSI的类,如果它的首字母缩写可能是一个好主意,可以写出详细模式。
答案 1 :(得分:0)
建议将列表绑定到ObservableCollection<T>
而不是列表。
这在内部实现INotifyPropertyChanged
,因此当您设置列表的内容时,它将更新GUI。