У меня есть два комбинированных окна Silverlight 4.0; вторая отображает дочерние элементы сущности, выбранной в первой:
<ComboBox
Name="cmbThings"
ItemsSource="{Binding Path=Things,Mode=TwoWay}"
DisplayMemberPath="Name"
SelectionChanged="CmbThingsSelectionChanged" />
<ComboBox
Name="cmbChildThings"
ItemsSource="{Binding Path=SelectedThing.ChildThings,Mode=TwoWay}"
DisplayMemberPath="Name" />
Код за представлением предоставляет (простой, хакерский) способ привязки данных этих ComboBox'ов путем загрузки сущностей Entity Framework 4.0 через службу RIA WCF:
public EntitySet<Thing> Things { get; private set; }
public Thing SelectedThing { get; private set; }
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var context = new SortingDomainContext();
context.Load(context.GetThingsQuery());
context.Load(context.GetChildThingsQuery());
Things = context.Things;
DataContext = this;
}
private void CmbThingsSelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedThing = (Thing) cmbThings.SelectedItem;
if (PropertyChanged != null)
{
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("SelectedThing"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
Я хотел бы, чтобы оба поля со списком сортировали их содержимое в алфавитном порядке, и я бы хотел указать это поведение в XAML, если это вообще возможно.
Может, кто-нибудь подскажет, как это можно сделать с технологическим стеком SL4 / EF4 / WCF RIA?