我有一个数据网格,其中显示了所选项目的属性,以便在文本框和组合框中进行编辑。如果我将datagrid绑定到datagrid实体(Account
)的属性,则一切正常,但是当我想显示帐户(Account.AccountChart.Description
)的导航属性的描述时,则视图不更新,当我更改组合框值时。
Account
实体具有属性AccountChartId
和导航属性AccountChart
。 AccountChart
有一个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变体和不同的绑定,但无法钉牢。
谁能告诉我: