ComboBox失去了选定的价值

时间:2012-02-14 06:50:06

标签: wpf binding combobox

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

此数据网格的DataContext是一个ObservableCollection。 Transaction类有一个名为“Account”的属性以下是我创建此属性的方法:

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

我在这里做错了什么?当我从ComboBox中选择一个项目时,单击框外部后没有显示任何内容。当我在Account属性的Set方法中设置断点时,该值为null。

2 个答案:

答案 0 :(得分:3)

修正了我的问题。我必须设置Text属性绑定。

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

答案 1 :(得分:1)

SelectedValue中的ComboBox更改为SelectedItem。请阅读MSDN上两者之间的差异。