【发布时间】:2021-07-23 10:21:59
【问题描述】:
如果您将项目添加到 ItemsSource,我试图了解为什么 MenuItem 上的 Click 事件只触发一次。
但是如果您通过另一个控件(即按钮)添加项目,那么 Click 事件会继续触发吗?
<StackPanel>
<Menu HorizontalAlignment="Left" Height="100" Width="100">
<MenuItem Header="MenuItem" Click="MenuItem_Click" ItemsSource="{Binding MyItems}" Height="100" Width="100">
</MenuItem>
</Menu>
</StackPanel>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MyViewModel();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
((MyViewModel)DataContext).AddNewItem(null);
}
}
public class MyViewModel
{
public ObservableCollection<string> MyItems { get; set; } = new ObservableCollection<string>();
public MyViewModel() { }
public void AddNewItem(object x)
{
MyItems.Add(Guid.NewGuid().ToString());
}
}
【问题讨论】:
标签: wpf binding command menuitem