WPF Combobox странное поведение - PullRequest
0 голосов
/ 04 декабря 2009

У меня есть 2 комбинированных списка, которые мы будем называть cbo1 и cbo2. Теперь есть связь между cbo1 и cbo2. когда я выбираю элемент на cbo1, в любом случае обновляется cS2 ItemsSource (поскольку он привязан к SelectedItem), ниже приведен пример кода XAML для него.

<ComboBox x:Name="cbo1" Grid.Row="0" Grid.Column="1" Margin="5" SelectedItem="{Binding Path=Brand}"></ComboBox>
<ComboBox x:Name="cbo2" Grid.Row="1" Grid.Column="1" Margin="5" SelectedItem="{Binding Path=Model}" ItemsSource="{Binding ElementName=cbo1, Path=SelectedItem.Models}" DisplayMemberPath="Name"></ComboBox>

Используемые объекты: Марка и Модель. У бренда есть свойство с именем Models, которое содержит коллекцию объектов Model (typeof IList). Так что в основном, отношения один-много между двумя классами.

Кстати, эти 2 класса используются в NHibernate. Теперь, когда я запускаю приложение, сначала загружается cbo1, который содержит коллекцию объектов Brand. Когда я выбираю товарный знак, заполняется cbo2 с коллекцией Model. Как вы заметили, оба Combobox-ов имеют свойство SelectedItem, привязанное к свойствам текущего объекта, в частности, Brand и Model. Когда я выбираю модель на cbo2, она не отражается на свойстве Model текущего объекта. Что-то, что я пропустил?

1 Ответ

1 голос
/ 04 декабря 2009

опечатка: первая комбинация называется cbo1, но вторая комбинация связана с cbxBrand; но так как вы говорите, что появляются Модели do , я предполагаю, что это нормально в вашем реальном исходном коде, и вы переименовали его в Вопрос здесь?

В любом случае, ваш код полностью сработал для меня, я установил точку останова в установщике свойства Model, и он не попал в нее, поэтому я могу только догадываться, может ли DataContext в Window некорректен? Можете ли вы опубликовать свой код (или ViewModel)?

...