現在、パネルが再描画されるたびに、valueconverter でデータの再スケーリングを行っています。ほとんどの処理は、コントロールのサイズまたは他のいくつかのプロパティが変更された場合にのみ発生するため、この処理の一部をビューモデルに移動したいと考えています。
再スケーリングされたデータが適切に見えるようにするにActualWidth
は、viewmodel のコンテナーが必要です。ビューモデルのプロパティに一方向にバインドしたいので、変更されたときに再スケーリング処理をトリガーできます。
私が見つけることができるすべての例は、他の方法ではなく、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); } }