У меня есть текстовое поле и кнопка в UserControl, и он открывает окно в кнопке clickto выбрать что-то и положить в текстовом поле: так:Как связать зависимость свойства usercontrol с собственностью viemodel usercontrol?
string myProperty;
public string MyProperty
{
get
{
return myProperty;
}
set
{
myProperty= value;
RaisePropertyChanged("MyProperty");
}
}
public ICommand buttonClickCommand
{
get { return new RelayCommand(ShowItemView); }
}
void ShowItemView()
{
var ItemViewModel = new ItemViewModel();
var ItemView = new ItemView();
ItemView .DataContext = ItemViewModel ;
ItemView .ShowDialog();
if (ItemViewModel .SelectedItem != null)
myProperty= ItemViewModel .SelectedItem.Name;
}
и теперь я хочу, чтобы создать два экземпляра UserControl в окне, и связать их текстовое поле для двух свойств ViewModel окна, поэтому я сделать свойство зависимостей для этого, как это:
public static readonly DependencyProperty OperandTextValueProperty = DependencyProperty.Register("OperandTextValue",
typeof(string),
typeof(DefaultSpecItemControl),
new FrameworkPropertyMetadata()
{
PropertyChangedCallback = OnOperandTextValue,
BindsTwoWayByDefault = true
});
public string OperandTextValue
{
get
{
return (string)GetValue(OperandTextValueProperty);
}
set
{
SetValue(OperandTextValueProperty, value);
}
}
и привязать его к свойствам в ViewModel окна, но я не знаю, как я могу связать его с viemodel usercontrol, в этом случае связать его к MyProperty в viewmodel элемента управления. Так
1: Есть ли способ привязать зависимость? Свойство usercontrol к его собственной модели просмотра?
2: Я на правильной дороге?
благодарит заранее.
если 'ItemView' это диалоговое окно с возможностью отмены/закрытия, используйте следующие строки: если (ItemView .ShowDialog() == TRUE) если (! ItemViewModel .SelectedItem = нуль) MyProperty = ItemViewModel .SelectedItem .Имя; или аналогично этому. – stukselbax
Почему, по-вашему, вам нужно определить DependenyProperty в вашем окне, если вы следуете шаблону MVVM, тогда вам лучше определить только простые свойства в ViewModel Windows. Затем свойства Tthese должны возвращать значение из соответствующей ViewModel UserControl. Ваш вопрос непонятен мне, пожалуйста, объясните все больше и лучше. – 000
@Sam: я не определяю dependencyProperty в окне, я определяю его в usercontrol.and я хочу привязать его к viewmodel userControl. –