В настоящее время я выполняю некоторые изменения масштаба данных в преобразователе значений всякий раз, когда панель перерисовывается. Я хочу переместить часть этой обработки в модель представления, так как большая часть обработки происходит только при изменении размера элемента управления или нескольких других свойств.
Чтобы убедиться, что масштабированные данные выглядят приемлемыми, мне нужно ActualWidth
контейнера в модели представления. Я хочу привязать его к свойству модели представления одним способом, чтобы при его изменении я мог запустить обработку изменения масштаба.
Все примеры, которые я смог найти, связывают свойство CLR или зависимости с элементом, а не каким-либо другим способом, и я явно упускаю что-то в моем понимании, чтобы понять, как мне это сделать. Я пробовал несколько разных вещей при настройке привязки, но просто не правильно понял.
Есть намеки? спасибо.
В MyView XAML:
<myItemsControl/>
В коде MyView что-то вроде:
Binding b = new Binding(MyWidthProperty);
b.Mode = BindingMode.OneWay;
b.Source = myItemsControl.Name;
.........?
и
public static readonly DependencyProperty MyWidthProperty =
DependencyProperty.Register( "MyWidth", typeof(Double), typeof(MyViewModel));
В MyViewModel:
public Double MyWidth{
get { return _myWidth; }
set { _myWidth = value; ViewChanged(this); } }