【发布时间】:2018-08-01 08:36:18
【问题描述】:
经过广泛的研究,我还没有找到这个问题的答案。我有一个列表框,其 ItemsSource 是 Button 对象的集合。当我将一个按钮添加到集合中时,它会正确显示,但是单击该命令时不会执行。我已经实现了 RelayCommand,它在我的代码中使用。
C# MVVM WPF
观点
<ListBox ItemsSource="{Binding Buttons}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Button Margin="5,5,5,5"
Content="{Binding Content}"
Command="{Binding ExecuteButtonCommand}"
CommandParameter="{Binding CommandParameter}"
/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
视图模型
public RelayCommand _executeButtonCommand;
public ICommand ExecuteButtonCommand
{
get
{
if (_executeButtonCommand == null)
_executeButtonCommand = new RelayCommand(exec => this.ButtonCommands(param));
return _executeButtonCommand;
}
}
为了测试我有这个代码。
public void AddButtons()
{
Buttons= new ObservableCollection<Button>();
Button btn = new Button();
btn.Content = "Generate Files";
btn.Command = "{Binding ExecuteButtonCommand}";
btn.CommandParameter = "Files";
Buttons.Add(btn);
}
但我不能那样分配命令。按钮的其余部分正常工作。所以我把 Command= 放在上面的视图中。
如果这已被回答,那么我找不到它。最接近的答案是 9 岁,无效。
感谢收看。
【问题讨论】: