Я использую проект Silverlight 4.0, который использует MVVM, и у нас есть комбинированный список, который находится в представлении, и его значения и выбранное значение привязаны к наблюдаемой коллекции Организации и SelectedOrganization соответственно (оба значения существуют в модели представления),В нашем проекте страница, на которой находится этот элемент управления, может быть скрыта или показана.При первой загрузке все выглядит отлично, но когда вы переходите к другому элементу управления (скрываете вкладку с помощью элемента управления, а затем возвращаетесь к нему), значение, которое в данный момент выбрано в поле со списком, выглядит пустым, но когда я отлаживаю, выбранныйзначение все еще там.
Визуальное дерево воссоздается, но я понятия не имею, почему выпадающий список теряет текст, который должен быть в поле, когда родительская страница скрыта, а затем снова отображается.Все остальные элементы управления на странице ведут себя правильно (autocompletetextbox, текстовые блоки, текстовые поля, все из которых имеют данные, связанные с моделью представления одинаково).
Вот как объявляется комбинированный список:
<ComboBox
SelectedItem="{Binding SelectedOrganization, Mode=TwoWay}"
ItemsSource="{Binding Organizations}"
DisplayMemberPath="Name"
Margin="5,0"
MinWidth="100" />
Класс для организации находится здесь:
[DataContract]
public class Organization
{
[DataMember]
public Guid OrganizationID { get; set; }
[DataMember]
public string Name { get; set; }
}
, и модель представления имеет следующий код для привязок:
public Organization SelectedOrganization
{
get { return (Organization)GetValue("SelectedOrganization"); }
set
{
SetValue("SelectedOrganization", value);
}
}
public ObservableCollection<Organization> Organizations
{
get { return (ObservableCollection<Organization>)GetValue("Organizations"); }
set { SetValue("Organizations", value); }
}
Что мне нужно сделать, чтобы сохранить выбранное значение, когдаЯ переключаю родительские страницы?