Выбранное значение Silverlight 4 ComboBox не работает при изменении ItemsSource - PullRequest
1 голос
/ 24 ноября 2010

У меня есть 2 свойства в классе ViewModel, EmployeeList и Employee.EmployeeList - это динамическое свойство, которое, как говорится, может изменяться во время выполнения.Исходный код класса ViewModel приведен ниже:

public class SampleViewModel
{
    public ObservableCollection<Employee> EmployeeList { get; set; }
    public Employee { get { ... } set { ... } }
}

Представление установило свои свойства ItemsSource и SelectedValue для EmployeeList и Employee соответственно.

ItemsSource="{Binding EmployeeList, Mode=TwoWay}"
SelectedValue="{Binding Employee, Mode=TwoWay}"

Все работает хорошо, кроме EmployeeList изменилосьи Employee не существует в EmployeeList, шаг сценариев приведен ниже.

  1. EmployeeList имеет 2 сотрудника, Mr.A и Мистер.B и SelectedValue составляет Mr.A
  2. EmployeeList изменен на Mr.Б и г-н.C , по истечении этого времени SelectedValue больше не работает.Если я установил Employee для ViewModel и NotifyPropertyChanged, это значение не будет обновляться в пользовательском интерфейсе, или если я выбрал нового Employee из пользовательского интерфейса, это значение не будет обновляться в ViewModel, нижняя строка - это View, а ViewModel был отключен, так как EmployeeList изменился, а Employee - нет.существует в этом списке.

Я хочу знать, как я могу исправить эти проблемы?

Ответы [ 3 ]

2 голосов
/ 28 августа 2012

Полагаю, вам нужно связать комбинированный список, как показано ниже:

<ComboBox Grid.Row="5" Grid.Column="1" ItemsSource="{Binding Path=Employee,Mode=TwoWay}">
  <DataTemplate>
    <StackPanel>
       <TextBlock Height="8" HorizontalAlignment="Center" Text="{Binding Path=MR.A}"/>
       <TextBlock Height="8" HorizontalAlignment="Center" Text="{Binding Path=MR.B}"/>
     </StackPanel>
  </DataTemplate>
</ComboBox>
0 голосов
/ 08 февраля 2011

Я могу решить эту проблему решением Образец Silverlight ComboBox для RIA Services .

0 голосов
/ 01 декабря 2010

У меня тоже есть серьезные проблемы с привязками Silverlight 4 ComboBox и SelectedValue. Как ни странно, использование SelectedItem для привязки работает очень хорошо, но это не всегда возможно, особенно при использовании объектов домена и поисков типа FK Id.

Посмотрите мое сообщение на форумах CSLA - оно решает большинство проблем синхронизации и связывания при использовании выбранного значения.

http://forums.lhotka.net/forums/p/9786/45971.aspx

Надеюсь, что поможет

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