2012-02-14 5 views
1

У меня есть поле со списком внутри моего WPF DataGrid. Она создается так:ComboBox теряет выбранное значение

<DataGridTemplateColumn Header="Account"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=Account, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
      <ComboBox ItemsSource="{DynamicResource Accounts}" SelectedValue="{Binding Path=Account, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Height="23" IsTextSearchEnabled="True"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellEditingTemplate> 
</DataGridTemplateColumn> 

DataContext для этого DataGrid является ObservableCollection. Класс транзакций имеет свойство «Account» Ниже, как я создаю эту недвижимость:

public string Account 
{ 
    get { return account; } 
    set { account = value; NotifyPropertyChanged("Account"); } 
} 

Что я делаю неправильно здесь? Когда я выбираю элемент из ComboBox, ничего не отображается после того, как я выхожу за пределы поля. Когда я устанавливаю точку останова в методе Set свойства Account, значение равно null.

ответ

3

Исправлена ​​проблема. Мне пришлось установить привязку свойства Text.

<DataGridTemplateColumn.CellEditingTemplate> 
    <DataTemplate> 
     <ComboBox ItemsSource="{DynamicResource Accounts}" Text="{Binding Path=Account}" Height="23" IsTextSearchEnabled="True"/> 
    </DataTemplate> 
</DataGridTemplateColumn.CellEditingTemplate> 
1

Изменить SelectedValue в своих ComboBox на SelectedItem. Прочитайте разницу между ними на MSDN.

+0

Это не работает после изменения его на SelectedItem. Вопрос остается без изменений. Если что-то будет заменено на привязку TextBlock? –

Смежные вопросы