【问题标题】:ComboBox binding with DisplayMemberPath and SelectedValuePath does not work as expected与 DisplayMemberPath 和 SelectedValuePath 绑定的 ComboBox 无法按预期工作
【发布时间】:2021-11-13 08:36:22
【问题描述】:

我将 ObservableCollection 绑定到 ComboBox 并将 DisplayMemberPath 设置为名称, 在 SelectedValuePath 的帮助下,我想实现 Device.ObjectId 获取 Object.Id 的值。 但这似乎不起作用,仍然为 Device.ObjectId 设置了 Object.Name。 如何让 ComboBox 显示名称但设置 Id?

public class Object
{
        public string Id { get; set; }
        public string Name { get; set; }
}

ObservableCollection Objects = new ObservableCollection<Object>();
    
    
<ComboBox ItemsSource="{Binding Objects}" DisplayMemberPath="Name" SelectedValuePath="Id">
    <ComboBox.Text>
        <Binding Path="Device.ObjectId" UpdateSourceTrigger="PropertyChanged">
    </ComboBox.Text>
</ComboBox>

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    由于您将SelectedValuePath 属性设置为Id,因此您可以绑定到SelectedValue 属性以获取值。像这样的:

    <ComboBox ItemsSource="{Binding Objects}" DisplayMemberPath="Name"
              SelectedValuePath="Id" SelectedValue="{Binding Device.ObjectId}" />
    

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 2010-09-19
      • 2012-08-17
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多