1

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);
    }
}
4

0 に答える 0