0

ピボット ページを作成しました。上部の 2 つのテキスト ブロックに情報を表示したいと考えています。DataTemplate を作成し、テキスト フィールドに x:names を設定しました。しかし、ページ コンストラクターからこのテキスト ブロックに対処してそこにテキストを配置することはできません。なんで?そして、どうすればこの状況をごまかすことができますか?ページの読み込み中にテキスト ブロックの情報を入力する必要があります。

        <controls:Pivot.TitleTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock x:Name="textBlock_eventID" TextWrapping="NoWrap" Margin="0"/>
                    <TextBlock x:Name="textBlock_eventName"  TextWrapping="NoWrap" Opacity="0.7"/>
                </StackPanel>
            </DataTemplate>
        </controls:Pivot.TitleTemplate>
4

1 に答える 1

2

DataTemplate を使用するポイントは、ビジネス オブジェクトのプレゼンテーションを定義することです。つまり、次のようなクラスがあるとします。

public class MyClass
{
    public string StringOne { get; set; }
    public string StringTwo { get; set; }
}

Pivot コントロールの Title プロパティをこのクラスのインスタンスに設定すると、DataTemplate を使用して外観を定義できます。

あなたの場合、テンプレートは次のようになります。

    <controls:Pivot.TitleTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding StringOne}" TextWrapping="NoWrap" Margin="0"/>
                <TextBlock Text="{Binding StringTwo}" TextWrapping="NoWrap" Opacity="0.7"/>
            </StackPanel>
        </DataTemplate>
    </controls:Pivot.TitleTemplate>

次に、コード ビハインドから、ピボット コントロールの Title プロパティを設定します。このようなもの:

 myPivotControl.Title = new MyClass 
     { 
         StringOne = "Some String", 
         StringTwo = "Some other string" 
     };

これを行う別の方法があります。この方法では、コード ビハインドからテキスト ボックスを簡単に設定できますが、これには DataTemplate は含まれません。

Pivot コントロールの Title プロパティを次のように設定すると、TextBox に名前でアクセスできるようになります。

    <controls:Pivot.Title>
        <StackPanel Orientation="Horizontal">
            <TextBlock x:Name="textBlock_eventID" TextWrapping="NoWrap" Margin="0"/>
            <TextBlock x:Name="textBlock_eventName"  TextWrapping="NoWrap" Opacity="0.7"/>
        </StackPanel>
    </controls:Pivot.Title>

DataTemplate の詳細については、この記事をお読みください。

于 2013-02-03T10:04:51.030 に答える