0

データベースから取得した結果に基づいて、ビューにテキストブロックを動的にロードする必要があります。

例: カウントが「5」として返される場合

5 つのテキストブロックを表示する必要があり、テキストブロックに「コンテキスト メニュー」を設定する必要もあります。

ユーザーがコンテキスト メニューを右クリックすると、[その他の詳細を表示] をクリックして「テキスト ブロックをさらに読み込む」オプションが表示されます。

よろしく

チャトゥ


メールをいただきありがとうございます。さまざまなテキストブロックのさまざまなコンテキスト メニューにさまざまなデータを表示する必要があります。コンテキストメニューにはヘッダーがあり、その下に「名前」「電話番号」があります

for.g: contextmenuを持つTextblock A

ABC

アダム「123456」

スティーブ「56789」

詳細を読み込む

TextBlock B の場合、

防御力

さちん「9999」

ラフル「8976」

詳細を読み込む

これが表示されるはずです。ユーザーが [詳細を読み込む] をクリックすると、 currentTextBlocks の右側に別の TextBlocks のセットが表示されます。

よろしくチャトゥ

4

1 に答える 1

1

ItemTemplate にバインドされた Observablecollection を使用できます。例えば:

XAML

<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
    <DataTemplate>
            <TextBlock Text="{Binding}">
                <TextBlock.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="More Detail" Click="LoadMoreDetail" />
                    </ContextMenu>
                </TextBlock.ContextMenu>
            </TextBlock>
    </DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

とコードビハインド

public ObservableCollection<string> myTextBlocks { get; set; }
private void LoadModel()
{
   myTextBlocks = new ObservableCollection<string>();
   // HERE IMPLEMENTS YOUR DB LOGIC TO LOAD
   myTextBlocks.Add("1");
   myTextBlocks.Add("2");
   myTextBlocks.Add("3");

   this.DataContext = myTextBlocks;
}
private void LoadMoreDetail(object sender, RoutedEventArgs e)
{

   myTextBlocks.Add("more detail");
}
于 2012-10-11T10:11:15.550 に答える