我有一个带有4个组合框的UserControl绑定到viewmodel中用于该用户控件的集合。
我以wpf格式使用了这个控件。这个wpf表单有自己的viewmodel。
如何从wpf格式的viewmodel中的4个组合框中访问文本?
答案 0 :(得分:0)
UserControl应该继承您将其添加到视图模型的表单的数据上下文。然后,UserControl中的任何绑定都将相对于继承的数据上下文。您是否尝试将视图模型属性绑定到ComboBox.Text
?
<强>更新强>
抱歉,误读了你的问题。没有看到用户控件已经有自己的视图模型。
虽然看起来有更好的方法,但您可以在用户控件上公开依赖项属性,从而公开每个组合框的文本。只是大声思考。
答案 1 :(得分:0)
执行此操作的唯一简洁方法是使用绑定,并且建议的唯一方法是,如果用户控件为ViewModel或单个文本属性(如sellmeadog建议)公开DependencyProperty
消费。然后,您可以在父ViewModel中拥有一个直接绑定到该依赖项属性的属性。
答案 2 :(得分:0)
旧例子:
在你的viewmodel://真正的代码当然应该实现INotifyPropertyChanged
并正确地提升它
public ObservableCollection<string> MyFirstCollection {get; set;}//init once, add,remove,clear to alter
public string MySelectedCombobox1Value {get;set;}
你的usercontrol中的:
<ComboBox ItemsSource="{MyFirstCollection }" SelectedItem="{Binding MySelectedCombobox1Value, Mode=TwoWay}" />
这些都与你的问题有关。请务必将DataContext
设置为正确。你可以用像snoop这样的工具来检查。我发布的代码预计组合框的dataconext是viewmodel。