XAMLでこれを行う必要があります:
<Grid x:Name="layoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<SomeUserControl Grid.Row="0" />
<ui:AdditionalView.UseCase1>
<ContentControl>
<TextBlock>aaa</TextBlock>
</ContentControl>
</ui:AdditionalView.UseCase1>
</Grid>
まず、そして最も重要なのは、Something.UseCase1フォームのブロックが必要です。そのようにして、添付プロパティを使用することになりました。AdditionalViewクラスを定義し、UseCase1という添付プロパティを定義しました。
ただし、これはレンダリングされません
<TextBlock>aaa</TextBlock>
実行時。
どうすればこれを達成できますか?
後で編集(1)-私はなんとかそのように機能するようになりました:
<ContentControl Grid.Row="1" Content="{Binding ElementName=layoutRoot, Path=(ui:AdditionalView.UseCase1)}" />
..しかしそれは厄介なようです。これを機能させるための適切な方法はありますか?
AdditionalViewクラス:
public class AdditionalView
{
public static readonly DependencyProperty UseCase1Property = DependencyProperty.RegisterAttached(
"UseCase1",
typeof(object),
typeof(AdditionalView),
new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetUseCase1(UIElement element, Boolean value)
{
element.SetValue(UseCase1Property, value);
}
public static object GetUseCase1(UIElement element)
{
return element.GetValue(UseCase1Property);
}
}