当前位置: 首页 > 知识库问答 >
问题:

WPF获取组合框所选文本(MVVM)

长孙阳嘉
2023-03-14

我有一个ComboBox,我想在视图模型中将选中的项目文本绑定到一个字符串。

现在我有了:

Xaml:

<ComboBox DataContext="{Binding AllDataTypes}" SelectedItem="{Binding Type}" />

视图模型:

private String type;

public String Type
{
    get
    {
        return type;
    }
    set
    {
        if (type == value)
        {
            return;
        }

        type = value;
        RaisePropertyChanged(() => Type);
    }
}

当我运行该程序时,我收到异常:

Binding表达式路径错误:在“对象”上找不到“类型”属性“观察集合'1'(HashCode=34166919)”。Binding表达式:路径=类型;数据项=“观察集合'1'(HashCode=34166919);目标元素是“组合框”(名称=");目标属性是“选择项目”(类型“对象”)

共有1个答案

漆雕洋
2023-03-14

将< code>DataContext更改为< code>ItemsSource:

<ComboBox ItemsSource="{Binding AllDataTypes}" SelectedItem="{Binding Type}" />
 类似资料:
  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是:

  • 我有一个列表类型的组合框。我通过datacontext绑定了ItemsSource和ItemSelected。如果所选项目已经更改,我会显示一条弹出消息,确认用户的操作。单击“确定”后,选择会发生变化。但是在点击“取消”时,选择应该被取消,而先前的项目应该被保留。下面是绑定到combobox的SelectedItem的属性。 组合框在弹出窗口中。那么Dispatcher对象在这种情况下能工作吗?

  • 日安, 我希望我的组合框选择其中的第一个项目。我正在使用C#和WPF。我从DataSet读取数据。要填充组合框: 组合框XAML代码: 如果我尝试: 它不起作用。

  • 我在wpf c#应用程序中有一个组合框。在xaml中,我尝试执行以下操作。 ItemsSource 来自一个变量。选定项在另一个变量上设置值 但我希望显示的文本来自一个新变量。 如何停止使所选项目源显示为正文?

  • 我有2个组合盒主从这样: 但当我在第一个组合框中选择一个项目时,它有空的“项目”列表,而我已经用“项目”选择了其中一个项目,并在第二个组合框选择了项目。第二个组合框中的文本不为空。我也尝试过使用IsSynchronizedWithCurrentItem=“False”。 是什么问题呢?

  • 我使用Saxon CE和XSLT 2.0在页面上生成和操作控件。生成组合框不是问题,但当我更改组合框时,似乎无法从组合框的选项条目中获取值。下面是示例性XSLT代码: 我想做的是当用户更改组合框的值时,他们选择的选项的值存储在变量$myVal中。然后我使用该变量来影响主页上的转换。现在我拥有的根本不起作用(目前它获取所有选项的所有值,而不是用户选择的那个)。 思想?