0

全て、

DataContext のオブジェクトから StaticResource を作成することは可能ですか (コード ビハインドを追加せずに)? たとえば、UserControl の DependencyProperty を考えてみましょう。

public static DependencyProperty ViewModelProperty = DependencyProperty.Register("ViewModel", typeof(IVMHeaderGeneric), typeof(UIHeader), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
public IVMHeaderGeneric ViewModel
{
    get
    {
        return (IVMHeaderGeneric)this.GetValue(ViewModelProperty);
    }
    set
    {
        this.SetValue(ViewModelProperty, value);
    }
}

IVMHeaderGenericこのユーザー コントロールのコンシューマーによってクラスとしてインスタンス化されるインターフェイスです。

私がする必要があるのは、どういうわけか (できればコード ビハインドなしで)、これを UserControl のリソースに追加して、DataContext を継承しない UIElements でデータ バインディングを実行できるようにすることです (つまり、DataGridColumn が思い浮かびます)。

前もって感謝します。

4

1 に答える 1

0

あなたが言ったように、実装がUserControlの範囲外であるため、xamlリソースでインターフェイスのインスタンスを作成できなかったと思います。

StaticResourceを作成する代わりに、Bindingを使用してUserControl DataContext プロパティを参照できます。たとえば、ルート要素の名前を指定するとRoot、次のように記述できます。

<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" />
于 2013-03-29T04:35:01.927 に答える