簡體   English   中英

WPF Datagrid主詳細信息MVVM

[英]WPF Datagrid Master Detail MVVM

我有一個WPF應用程序。 我有兩個數據網格,一個包含一個指標列表,另一個包含我要顯示頂部數據網格的所選指標的更多詳細信息的數據網格。

但是,我的詳細信息網格不顯示任何數據,我無法弄清原因。 我應該指出,主數據網格正在很好地填充。 我已經在屬性IndicatorSelected的設置器中稍作停留,可以看到在選擇一個項目時正在調用它,並且看到數據是正確的,但未在詳細數據網格中顯示。

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 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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