4

子がいつ追加されたかを検出する効率的な方法は何StackPanelですか? StackPanel例として使用していますが、それはGridWrapPanelまたは Panel から派生した任意のコントロールです。

2 つの方法でコントロールを追加しようとしています。XAML と AttachedProperty の PropertyChanged を使用します。

ここにいくつかのコードがあります:

public class Region : UserControl
{
    public static readonly DependencyProperty RegionNameProperty;
    static Region()
    {
        RegionNameProperty = DependencyProperty.RegisterAttached(
        "RegionName",
        typeof(string),
        typeof(Region),
        new UIPropertyMetadata(new PropertyChangedCallback((s,e)=>
        {
            if(s is StackPanel)
            {
                 StackPanel stack = (StackPanel)s;
                 stack.Children.Add(new Button(){Content="Test2"});
            }
        }))
      );
   }
}

XAML:

        <StackPanel Name="stack2" local:Region.RegionName="MyRegion1">
            <Button Content="Test 1"/>
        </StackPanel>

ここでは、「テスト 1」ボタンの前に「テスト 2」ボタンが追加されていることがわかります。

ありがとう、

4

1 に答える 1