您可以使用绑定到 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");
}