1

Windows 8アプリの書き方を学んでいますが、問題に対する答えが見つかりません。

ボタンをクリックして追加するカスタムコントロールを作成しました。

onclick() {
    card currentcard = new card();
    ...
    ...
    hand.Children.add(currentCard);
}

page.csで

現在のカードコントロールには、次のようなGeneric.xaml情報が含まれています。TextBlock

<Style TargetType="local:tile">
  <Setter Property="VerticalAlignment" Value="Center"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="local:tile">
        <Border
             Background="{TemplateBinding Background}"
             BorderBrush="{TemplateBinding BorderBrush}"
             BorderThickness="{TemplateBinding BorderThickness}">
          <TextBlock x:Name="Label"/> // <----------------------- this textblock
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

TextBlock名前付きラベルの値を取得/設定するために、page.csまたはおそらくcard.csで何ができますか?

これが初歩的なものであるか、以前に回答された場合は申し訳ありませんが、検索を行いましたが、回答が見つかりませんでした。

4

1 に答える 1

0

TextBlock問題はTileと呼ばれるカスタムタイプのの一部であるためControlTemplate、これに対する最善の策は、タイルタイプにを追加し、のプロパティをこの新しいの値にバインドするためにDependencyProperty使用することです。TemplateBindingTextTextBlockDependencyProperty

ControlTemplateそのテンプレートの一部の値を変更するために、外部から簡単にアクセスすることはできません。

この回答DependencyPropertyは、を使用してそれをにバインドする1つの例を提供しますControlTemplate。クイック検索を行うと、おそらく他の多くの例が得られます。

于 2013-02-21T22:29:49.870 に答える