【问题标题】:ComboBox loses Selected Value组合框丢失所选值
【发布时间】:2012-02-14 06:50:06
【问题描述】:

我的 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 Property 的 Set 方法中设置断点时,值为 null。

【问题讨论】:

    标签: wpf binding combobox


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 将其更改为 SelectedItem 后仍然无法正常工作。问题保持不变,没有任何差异。是否应该更改 TextBlock 的绑定?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 2014-01-06
      • 2012-05-23
      • 1970-01-01
      相关资源
      最近更新 更多