我有一個用戶控件與綁定到viewmodel爲該用戶控件集合的4個組合框。如何從wpf窗體viewmodel訪問usercontrol中的組合框文本?
我已經用wpf格式使用這個控件。這個wpf表單有它自己的viewmodel。
如何從wpf窗體的viewmodel中的4個組合框中訪問文本?
我有一個用戶控件與綁定到viewmodel爲該用戶控件集合的4個組合框。如何從wpf窗體viewmodel訪問usercontrol中的組合框文本?
我已經用wpf格式使用這個控件。這個wpf表單有它自己的viewmodel。
如何從wpf窗體的viewmodel中的4個組合框中訪問文本?
編輯:我看到你有不同的viewmodels。現在這取決於使用的用戶控件和使用MVVM :)
老例如: 在你的視圖模型://真正的代碼當然應該實行INotifyPropertyChanged
和您的用戶控件提高得當
public ObservableCollection<string> MyFirstCollection {get; set;}//init once, add,remove,clear to alter
public string MySelectedCombobox1Value {get;set;}
:
<ComboBox ItemsSource="{MyFirstCollection }" SelectedItem="{Binding MySelectedCombobox1Value, Mode=TwoWay}" />
多數民衆贊成有關你的問題。確保你設置了DataContext
的權利。你可以使用snoop等工具來檢查它。我發佈的代碼預計combobox的dataconext是viewmodel。
謝謝..我得到它與您的代碼片段的幫助工作 – 2012-07-22 02:09:57
UserControl應該繼承您將其添加到其中的視圖模型的表單的數據上下文。然後,UserControl中的任何綁定都將相對於繼承的數據上下文。你有沒有嘗試綁定到視圖模型屬性ComboBox.Text
?
UPDATE
對不起,誤解你的問題。沒有看到用戶控件已經擁有自己的視圖模型。
雖然看起來有更好的方法,但您可以在用戶控件上公開每個組合框文本的依賴屬性。只是大聲思考。
唯一干淨的方法是使用綁定,如果用戶控件爲ViewModel或單個文本屬性(如sellmeadog所建議的)提供DependencyProperty
供消費,則建議的唯一方法是。然後,您可以在父視圖模型中直接綁定到該依賴屬性的屬性。
謝謝,我暴露了usercontrol的依賴屬性 – 2012-07-22 02:10:51
請不要使用wpf格式!它的WPF窗口/用戶控制/視圖;) – blindmeis 2012-07-20 06:18:24
也很高興看到一些代碼。爲你的wpf窗口設置datacontext,viewmodel代碼,你的組合框的xaml等等。 – blindmeis 2012-07-20 06:27:50