WPF数据网格绑定到导航属性(视图未更新)

时间:2019-05-07 08:14:51

标签: c# wpf entity-framework data-binding

我有一个数据网格,其中显示了所选项目的属性,以便在文本框和组合框中进行编辑。如果我将datagrid绑定到datagrid实体(Account)的属性,则一切正常,但是当我想显示帐户(Account.AccountChart.Description)的导航属性的描述时,则视图不更新,当我更改组合框值时。

Account实体具有属性AccountChartId和导航属性AccountChartAccountChart有一个Id和一个Description

我的模型实体没有实现属性更改通知,只有ViewModel。

DataGrid:

<DataGrid 
    ItemsSource="{Binding Accounts}"
    AutoGenerateColumns="False"
    SelectedItem="{Binding SelectedAccount}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Account type" Binding="{Binding AccountChart.Description}"/>
    </DataGrid.Columns>
</DataGrid>

组合框:

<ComboBox   
    ItemsSource="{Binding AccountCharts}"
    SelectedItem="{Binding SelectedChart}"
    DisplayMemberPath="Description"
    SelectedValuePath="Id"
    SelectedValue="{Binding SelectedAccount.AccountChartId}"
/>
VM中的

SelectedChart属性:

private AccountChart _selectedChart;
public AccountChart SelectedChart
{
    get { return _selectedChart; }
    set
    {
    _selectedChart = value;
    RaisePropertyChanged("SelectedChart");
    }
}

数据网格显示AccountChart的描述,但未使用ComboBox选择进行更新。数据库已正确更新,如果重新加载窗口,说明已更改。如果我将数据网格绑定从AccountChart.Description更改为AccountChartId,则数据网格将显示图表的Id,并使用ComboBox更新视图中的数据网格。我已经尝试过各种RaisePropertyChanged变体和不同的绑定,但无法钉牢。

谁能告诉我:

  1. 为什么绑定到导航属性后视图不更新?
  2. 如何通过导航属性中的描述更新视图?

0 个答案:

没有答案