我们要求根据从数据库中提取的结果动态加载视图中的文本块。
例如:如果count返回为" 5"
我需要显示5个文本块,我们还需要设置"上下文菜单"在文本块上。
如果用户右键单击上下文菜单,他可以选择加载"更多文本块"通过点击显示其他详细信息。想知道如何实现这一目标的最佳方式。
此致
chaitu
感谢您的邮件, 我们需要在不同文本块的不同上下文菜单上显示不同的数据。上下文菜单有标题,belwo它有"名称" " Phonenumber来
fore.g: Textblock A , 哪个有contextmenu
Adam" 123456"
加载更多详情
TextBlock B,
Sachin" 9999"
加载更多详情
这应该是显示。 当用户点击"加载更多详细信息" , 在currentTextBlocks的右侧,应该显示另一组TextBlock。
此致 chaitu
答案 0 :(得分: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>
和codebehind
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");
}