Выберите первый элемент в ComboBox, когда он станет видимым - PullRequest
0 голосов
/ 27 марта 2012

У меня есть ComboBox в приложении Silverlight, которое использует привязку данных для изменения своей видимости на основе значения свойства в ViewModel.Вот ComboBox XAML:

<ComboBox x:Name="Combo1" ... 
          Visibility="{Binding MyProperty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}">
   ... Some hard coded ComboBoxItems ...
</ComboBox>

BooleanToVisibilityConverter - это класс преобразователя, который преобразует логическое значение в соответствующее значение Visibility, чтобы показать / скрыть ComboBox.

Это прекрасно работает, однакото, что я хотел бы сделать, это когда я вижу ComboBox, я хочу выбрать первый элемент.Поэтому, если пользователь выбирает элемент из ComboBox, затем манипулирует формой, чтобы ComboBox был скрыт, а затем вносит изменения, которые снова отображают ComboBox, я хочу, чтобы ComboBox отображал первый элемент, а не выбранный пользователем элемент.

Спасибо!

1 Ответ

1 голос
/ 27 марта 2012

Это классический сценарий, в котором вам поможет модель MVVM, а не конвертер. Ваша модель представления может содержать свойство Visibility, которое будет привязывать данные к свойству Visib ComboBox. Затем в установщике связанного свойства Visibility (в вашей модели представления) вы можете вызвать метод в вашей модели представления, который выбрал первый элемент в вашем ComboBox. Вот пример того, как это может выглядеть: Как вы можете заставить XBL TextBlock в WP7 Silverlight разрушаться, когда он не содержит данных?

Коллекция, к которой привязан ваш ComboBox, вместе с выбранным элементом ComboBox также может быть в вашей модели представления и подключена к вашему представлению с помощью привязки данных, что позволяет всему происходить в вашей модели представления, а также настраивать себя приятно провести юнит-тест поведения, которое вы ищете.

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