📎

AttachedProperty(添付プロパティ)にバインディングする方法

2024/09/09に公開

https://youtu.be/QX8-V-PcHA4

AttachedProperty(添付プロパティ)には、

  • Grid.Row
  • Grid.Column
  • Grid.RowSpan
  • Grid.ColumnSpan
  • Canvas.Top
  • Canvas.Left
  • Canvas.ZIndex

などがあり、自分で定義するカスタムなものを含め、とてもよく使いますが、
これらにバインディングする方法は以外と知られていません。
(「添付プロパティ」よりも「後付けプロパティ」という名称の方が理解し易いと感じるのは私だけでしょうか?🤔)

では、早速AttachedPropertyにバインディングする方法を紹介します。

例えば、TextBlockTextプロパティに
SomeButtonというコントロールのGrid.RowGrid.Column
をバインディングするには次のように記述します。

<TextBlock>
    <Run Text="Row: " />
    <Run Text="{x:Bind SomeButton.(Grid.Row)}" />
</TextBlock>
<TextBlock>
    <Run Text="Column: " />
    <Run Text="{x:Bind SomeButton.(Grid.Column)}" />
</TextBlock>

つまり、

{x:Bind [対象コントロール名].([AttachedPropertyクラス名].[AttachedProperty名])}

となります。
今回は以上です。

Happy Coding!😊

GitHubで編集を提案

Discussion