子がいつ追加されたかを検出する効率的な方法は何StackPanel
ですか? StackPanel
例として使用していますが、それはGrid
、WrapPanel
または 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」ボタンが追加されていることがわかります。
ありがとう、