c# - WPF Datagrid主详细信息MVVM

标签 c# wpf xaml mvvm datagrid

我有一个WPF应用程序。我有两个数据网格,一个包含一个指标列表,另一个要显示顶部数据网格的所选指标的更多详细信息。

但是,我的详细信息网格不显示任何数据,我无法弄清原因。我应该指出,主数据网格正在很好地填充。我已经在属性IndicatorSelected的 setter 中稍作休息,可以看到在选择一个项目时正在调用它,并且看到数据是正确的,但未在详细数据网格中显示。

XAML

<DataGrid x:Name="dgModels" Grid.Column="0" 
                      ItemsSource="{Binding Path=IndicatorList}"
                      SelectedItem="{Binding Path=IndicatorSelected}"
                      AutoGenerateColumns="false">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Model" Binding="{Binding Name}" IsReadOnly="True"/>
        <DataGridCheckBoxColumn Header="Run" Binding="{Binding Run}" IsReadOnly="false"/>
    </DataGrid.Columns>                                            
</DataGrid>

<DataGrid x:Name="dgParameterInfo" Grid.Column="1"
          ItemsSource="{Binding Path=IndicatorSelected}"
          AutoGenerateColumns="false">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Parameter Name" Binding="{Binding Path=Name}" IsReadOnly="True"/>
        <DataGridTextColumn Header="Default Value" Binding="{Binding Path=DefaultValue}" IsReadOnly="True"/>
        <DataGridTextColumn Header="Run Value" Binding="{Binding Path=RunValue}" IsReadOnly="True"/>
        <DataGridTextColumn Header="Parameter Type" Binding="{Binding Path=ParaType}" IsReadOnly="True"/>
    </DataGrid.Columns>                    
</DataGrid>    

C#
class ViewModel : INotifyPropertyChanged
{
    List<IndicatorWrapper> _indicatorList;
    IndicatorWrapper _indicatorWrapper; 

    public List<IndicatorWrapper> IndicatorList
    {
        get { return _indicatorList; }
        set 
        { 
            _indicatorList = value;
            OnPropertyChanged("IndicatorList");
        }
    }
    public IndicatorWrapper IndicatorSelected
    {
        get { return _indicatorWrapper; }
        set
        {
            _indicatorWrapper = value;
            OnPropertyChanged("IndicatorWrapper");
        }
    }

    public ViewModel()
    {
        DatabaseRetrieveSimulator db = new DatabaseRetrieveSimulator();
        IndicatorList = db.GetIndicators();
    }
}

最佳答案

在您的IndicatorSelected setter中,您正在使用IndicatorWrapper调用OnPropertyChanged ...它应该是IndicatorSelected :)

关于c# - WPF Datagrid主详细信息MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20387993/

相关文章:

wpf - 如何使用固定宽度的列修复gridview中重叠的垂直滚动条

c# - WPF UIElement 刷新错误?

html - 在 WPF 中显示 HTML 编码样式

c# - 打开 PathListBoxScrollBehavior WPF

c# - Windows 8 XAML 不支持触​​发器?

c# - 多个类共享一个方法

c# - 如何组合(或)两个表达式树

c# - WPF编译错误

c# - 如何将 Sessionstate 存储在托管 .NET MVC 网站的数据库中

c# - 如何将配置更改保存回 App.Config