Выбор привязки данных Silverlight? - PullRequest
2 голосов
/ 21 июня 2009

Может кто-нибудь объяснить, как на самом деле привязка данных silverlight / wpf определяет, какой именно элемент нужно выбрать в качестве selectedItem в коллекции, как показано в следующем фрагменте

<ComboBox SelectedItem="{Binding Mode=TwoWay, Path=Province}" 
           ItemsSource="{StaticResource ProvinceCollection}" />

Где ProvinceCollection - это просто статический массив строк.

В этом примере элементы являются строками и, следовательно, типами значений, которые достаточно просты, но как узнать, что установить в качестве выбранного элемента, когда коллекция содержит нечто более сложное, например, экземпляры объектов, загруженные во время выполнения. Ссылки на объекты (Datacontext) .Province и элементы в ProvinceCollection НЕ будут одинаковыми, даже если я думаю, что они должны быть.

Я собираюсь сделать именно это, получить привязку данных, чтобы выбрать элемент из коллекции, в которой отсутствует элемент текущего текстового контекста в коллекции (т. Е. Нет элемента с такой же ссылкой на объект)

1 Ответ

3 голосов
/ 22 июня 2009

Я сам столкнулся с этим неприятным, в Silverlight 2, к сожалению, он использует Object.ReferenceEquals (проверено в отражателе), так что на самом деле это должен быть тот же объект. Это невероятно раздражает. Я ничего не могу с этим поделать, боюсь: (

Это было исправлено в Silverlight 3 (по крайней мере, в бета-версии), где он теперь использует Equals, и, таким образом, вы можете использовать способ переопределения метода Equals.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...