У меня есть ComboBox
, свойства которого ItemSource
и SelectedItem
привязаны к модели представления. И у меня есть следующий блок кода, который является обратным вызовом для запроса данных против DomainContext
:
/// <summary>
/// Stores (readonly) - Stores available for ship to store.
/// </summary>
public ObservableCollection<StoreEntity> Stores
{
get { return _stores; }
private set { _stores = value; RaisePropertyChanged("Stores"); }
}
/// <summary>
/// SelectedStore - Currently selected store.
/// </summary>
public StoreEntity SelectedStore
{
get { return _selectedStore; }
set { _selectedStore = value; RaisePropertyChanged("SelectedStore"); }
}
/// <summary>
/// When stores are completely loaded.
/// </summary>
/// <param name="a_loadOperations"></param>
protected void OnStoresLoaded(LoadOperation<StoreEntity> a_loadOperations)
{
Stores.AddRange(a_loadOperations.Entities);
SelectedStore = a_loadOperations.Entities.FirstOrDefault();
}
В этом примере Stores
является ObservableCollection<StoreEntity>
(AddRange
- это метод расширения) и связан с ItemSource
, а SelectedStore
является StoreEntity
и связан с SelectedItem
.
Проблема здесь в том, что ComboBox
не меняет свой выбор, чтобы отразить изменение в SelectedItem
.
редактирует:
Я даже попробовал следующее, хотя я думаю, что a_loadOperation.Entities
уже реализованный набор:
/// <summary>
/// When stores are completely loaded.
/// </summary>
/// <param name="a_loadOperations"></param>
protected void OnStoresLoaded(LoadOperation<StoreEntity> a_loadOperations)
{
var entities = a_loadOperations.Entities.ToArray();
Stores.AddRange(entities);
SelectedStore = entities.First();
}
Спасибо