web-dev-qa-db-ja.com

ページのデータコンテキストが他のバインディングに使用されている場合、WPF依存関係プロパティにバインドするにはどうすればよいですか?

ページのデータコンテキストが他のバインディングに使用されている場合、WPF依存関係プロパティにバインドするにはどうすればよいですか? (簡単な質問)

18
Thomas Bratt

要素のデータコンテキストを設定する必要がありました。

XAML:

<Window x:Class="WpfDependencyPropertyTest.Window1" x:Name="mywindow">
   <StackPanel>
      <Label Content="{Binding Path=Test, ElementName=mywindow}" />
   </StackPanel>
</Window>

C#:

public static readonly DependencyProperty TestProperty =
        DependencyProperty.Register("Test",
                                    typeof(string),
                                    typeof(Window1),
                                    new FrameworkPropertyMetadata("Test"));
public string Test
{
   get { return (string)this.GetValue(Window1.TestProperty); }
   set { this.SetValue(Window1.TestProperty, value); }
}

この関連する質問も参照してください。

WPF DependencyProperties

33
Thomas Bratt

XAMLの場合:

Something="{Binding SomethingElse, ElementName=SomeElement}"

コード内:

BindingOperations.SetBinding(obj, SomeClass.SomethingProperty, new Binding {
  Path = new PropertyPath(SomeElementType.SomethingElseProperty),  /* the UI property */
  Source = SomeElement /* the UI object */
});

通常はこれを逆に行い、UIプロパティをカスタム依存関係プロパティにバインドします。

10
itowlson