Здравствуйте. Я всюду искал решение этой проблемы и не могу найти решение.
У меня есть поле со списком в столбце таблицы данных, которое я хочу связать с его источником элементов в список, сгенерированныйбаза данных.Я также хочу привязать выбранное значение к отдельной таблице.Мне удалось это сделать ... но только иногда.Там что-то не синхронизировано.Вот код
xaml:
<Grid.Resources>
<my:CategoriesProvider x:Key="categoriesProvider"/>
</Grid.Resources>
..........................................
<data:DataGridTemplateColumn Header="Category" Width="100" x:Name="cboDataCol">
<data:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate x:Name="cboDataTemplate">
<ComboBox Name="cboCategories" SelectedItem="{Binding category, Mode=TwoWay}" ItemsSource="{Binding CategoriesList,Source={StaticResource categoriesProvider}}" DisplayMemberPath="name" SelectedValue="{Binding Path=category.id}" SelectedValuePath="id"/>
</DataTemplate>
</data:DataGridTemplateColumn.CellEditingTemplate>
</data:DataGridTemplateColumn>
C #:
public class CategoriesProvider : List<category>
{
MenuItems.MenuItemService.MenuItemServiceClient svc = new MenuItems.MenuItemService.MenuItemServiceClient();
ObservableCollection<category> allCategories;
public CategoriesProvider()
{
svc.getCategoriesCompleted += new EventHandler<getCategoriesCompletedEventArgs>(svc_getCategoriesCompleted);
svc.getCategoriesAsync();
}
public void svc_getCategoriesCompleted(object sender, getCategoriesCompletedEventArgs e)
{
//m_autoresetevent.Set();
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
allCategories = e.Result;
if (allCategories == null)
{
MessageBox.Show("NULL123");
}
});
}
Иногда кажется, что элемент управления привязывается к списку до завершения getItemsAsync.Есть ли решение сделать это таким образом, или я должен сдаться и попробовать что-то еще?
Спасибо