1

ボタンテンプレートがあります:

<DataTemplate x:Key="TemplateTest">
    <Button Margin="10" BorderThickness="2" Content="{Binding Text}" />
</DataTemplate>

テキストボックスと、テキストボックスのテキストと同じ内容のボタンを作成したいと考えています。

<TextBox x:Name="TextBox" Margin="10">TextBox</TextBox>
<ContentControl DataContext="{Binding ElementName=TextBox}"
    ContentTemplate="{StaticResource ResourceKey=TemplateTest}" />

しかし、この方法ではボタンに何も表示されません。

4

4 に答える 4

2

@DanPuzeyのものは、VS2012ではまだ機能しませんでした。Kaxaml で実行した理由がわからない

これは次のことを行いました:

<TextBox x:Name="TextBox"
          Margin="10"
          Text="Hello World" />
<ContentControl Content="{Binding ElementName=TextBox,
                                  Path=.}"
                ContentTemplate="{StaticResource TemplateTest}" />

<DataTemplate x:Key="TemplateTest">
  <Button Height="100"
          Margin="10"
          BorderThickness="2"
          Content="{Binding Text}" />
</DataTemplate>
于 2013-04-18T11:29:17.113 に答える
1

コンテンツ コントロールのコンテンツを設定していないため、これは非常に単純に失敗しています。設定しDataContextても何も変わりません。これを試して:

<ContentControl Content="{Binding ElementName=TextBox}" ContentTemplate="{StaticResource ResourceKey=TemplateTest}" />

上記はKaxamlでうまくいきましたが、うまくいかない場合は、テキストボックスのテキストに明示的にバインドする代わりにこれを試すことをお勧めします:

<ContentControl Content="{Binding Text, ElementName=TextBox}" ContentTemplate="{StaticResource ResourceKey=TemplateTest}" />
于 2013-04-18T10:58:47.500 に答える
1

まず、 contentControl のコンテンツをテキストにバインドするように設定する必要があります

<TextBox x:Name="TextBox" Margin="10">TextBox</TextBox>
<ContentControl Content="{Binding ElementName=TextBox,Path=Text}"
ContentTemplate="{StaticResource ResourceKey=TemplateTest}" />

ボタンのバインディングを変更する必要があります。

<DataTemplate x:Key="TemplateTest">
<Button Margin="10" BorderThickness="2" Content="{Binding}" />
</DataTemplate>
于 2013-04-18T11:28:52.317 に答える