У меня есть двусторонняя привязка на UIElement
RenderTransformProperty
. Подключение от ViewModel
к View
прекрасно работает, и ViewModel
может читать обновленное значение от View
, но ViewModel
не знает, когда изменяется свойство в View
. Я знаю, что могу создать свой собственный DependencyProperty
и передать значение, но это кажется неправильным. Как я могу уведомить ViewModel
при изменении View's
RenderTransformProperty
.Уведомить ViewModel, когда изменения RenderTransformProperty View
В Вид:
var renderTransformBinding = new Binding
{
Path = new PropertyPath("SymbolTransform"),
Mode = BindingMode.TwoWay
};
SetBinding(RenderTransformProperty, renderTransformBinding);
В ViewModel (с использованием MVVM Light):
private Transform _symbolTransform;
public Transform SymbolTransform
{
get { return _symbolTransform; }
set
{
if (Set(() => SymbolTransform, ref _symbolTransform, value))
{
_isDirty = true;
}
}
}
Transform - это класс, связанный с пользовательским интерфейсом. Я не думаю, что определение класса, связанного с UI в ViewModel, является хорошей идеей. –
Возможно, вы захотите установить [UpdateSourceTrigger] (https://msdn.microsoft.com/en-gb/library/system.windows.data.binding.updatesourcetrigger (v = vs.110) .aspx) на вашу привязку к ' PropertyChanged'. – sthotakura