У меня есть сетка данных, где свойства выбранного элемента отображаются для редактирования в текстовых полях и в выпадающих списках. Все работает нормально, если я связываю сетку данных со свойствами сущностей сетки данных (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:
<ComboBox
ItemsSource="{Binding AccountCharts}"
SelectedItem="{Binding SelectedChart}"
DisplayMemberPath="Description"
SelectedValuePath="Id"
SelectedValue="{Binding SelectedAccount.AccountChartId}"
/>
Свойство SelectedChart в виртуальной машине:
private AccountChart _selectedChart;
public AccountChart SelectedChart
{
get { return _selectedChart; }
set
{
_selectedChart = value;
RaisePropertyChanged("SelectedChart");
}
}
Сетка данных отображает описание AccountChart
, но не обновляется при выборе ComboBox. База данных обновлена правильно, и если я перезагрузить окно, описание изменилось. Если я изменяю привязку сетки данных с AccountChart.Description
на AccountChartId
, сетка данных отображает Id
диаграммы, а также обновляет сетку данных в представлении с помощью ComboBox. Я перепробовал все виды вариаций RaisePropertyChanged и разные привязки, но просто не могу это сделать.
Может кто-нибудь сказать мне:
- Почему мой вид не обновляется при привязке к свойству навигации?
- Как получить обновление вида с описанием из свойства навигации?