2011-07-04 14 views
0

編集:注!これは私のコードのタイプミスであることが判明しましたPath.Dataプロパティへのバインディングは機能しますか?

According to msdn、Path.Dataはバインド可能と思われます。しかし、msdnページのDependedency Property Informationの部分を読む方法がわかりません。 AffectsRenderとAffectsMeasureで十分ですか?

私はXを使用する場合:名前はそれを直接割り当てるには、幾何学的形状は

var curve = new GeometryGroup(); 
curve.Children.Add(new LineGeometry(new Point(0, 0), new Point(20, 20))); 
curve.Children.Add(new LineGeometry(new Point(0, 20), new Point(20, 0))); 
CurveGraph.Data = curve; 

これは正常に動作表示されます。素晴らしい "X"を描画します。私はViewModelにに

var curve = new GeometryGroup(); 
curve.Children.Add(new LineGeometry(new Point(0, 0), new Point(20, 20))); 
curve.Children.Add(new LineGeometry(new Point(0, 20), new Point(20, 0))); 
GeometryData= curve; 

DPタイプGeometryGroupの依存関係プロパティを持っている場合

しかし、:

public GeometryGroup GeometryData 
    { 
     get { return (GeometryGroup)GetValue(GeometryDataProperty); } 
     set { SetValue(GeometryDataProperty, value); } 
    } 

    public static readonly DependencyProperty GeometryDataProperty = DependencyProperty.Register("GeometryDataProperty", typeof(GeometryGroup), typeof(MiniTrendVm), new UIPropertyMetadata(new GeometryGroup())); 

を...それは動作しませんでした。何も起こりません。 「X」はありません。

XAML:

<Path Data="{Binding GeometryData}" x:Name="CurveGraph" Stroke = "{Binding StrokeColor}" StrokeThickness = "2" Grid.RowSpan="4"/> 

万一この作品?私は太った指で何かをしましたか?または、Dataプロパティをこのように設定することはできませんか?両方のケースでブラシがデータバインドされていたので、datacontextが正しく設定されていることがわかりました。

答えて

3

DependencyProperty"GeometryDataProperty"として登録されており、"GeometryData"である必要があります。これが実際にバインディングを壊すかどうかは不明です。 編集: H.B.による最近のテストこれがおそらく原因であることが明らかになります。そのプロパティをバインドすることは可能です。

+0

なぜ3人目であなた自身について話していますか? – svick

+0

@svick:ちょうどそれの地獄のため:) –

+1

これはいくつかの人々を混乱させることができることを示すように見えるようです:-) – svick

関連する問題