1

以下のようなユーザー コントロールがあるとします。コントロールActualWidthの外側から「G1」グリッドに何かをバインドするにはどうすればよいでしょうか。

<UserControl x:Class="Blah">
  <WrapPanel>
    <Grid x:Name="G1">
      ...
    </Grid>
    <Grid>
      ...
    </Grid>
  </WrapPanel>
</UserControl>
4

2 に答える 2

2

コントロールのコンテンツとしてではなく、コントロールの外側を意味する場合は、次ElementNameのようにバインディングで使用できます。

{Binding ElementName=G1, Path=ActualWidth}

別の Xaml ファイルのコントロールの外側を意味する場合、コントロールが他のコントロールのスコープ内にある場合は、Path プロパティの使用を試みることができます。

{Binding ElementName=ParentControl, Path=G1.ActualWidth}

ただし、G1 の名前をいつか変更する可能性があり、破損する可能性のあるバインディングを知ることはできないため、この設計はお勧めしません。

于 2008-11-21T10:40:35.940 に答える
1

このユーザー コントロールを使用する外部コントロールにバインドする場合はDependencyProperty、UserControl コード ビハインドで を宣言し、G1 をそのプロパティにバインドします。そして、外部コントロールのプロパティを UserControl の にバインドしますDependencyProperty。これは、2 レベルの間接化のようなものです。

于 2008-11-21T02:52:57.583 に答える