2012-02-14 47 views
1

我有一个组合框内的我的WPF DataGrid。它是这样创建的:组合框丢失选定的值

<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> 

此DataGrid的DataContext是ObservableCollection。本次交易类有一个名为“帐户”属性下面是我如何创建此属性:

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

什么我错在这里做什么?当我从ComboBox中选择一个项目时,我在框外点击后不会显示任何内容。当我在帐户属性的Set方法中设置断点时,该值为空。

回答

3

解决了我的问题。我必须设置Text属性绑定。

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

SelectedValue更改为ComboBoxSelectedItem。请仔细阅读MSDN上两者的区别。

+0

将其更改为SelectedItem后,仍然无法正常工作。这个问题依然没有任何分歧。应该改变TextBlock的绑定吗? – 2012-02-14 21:12:59