这篇我们继续上一篇功能 实现button 命令绑定
我们定义好了三个RelayCommand的命令
删除 和修改 需要带参数 不然 系统也不知道修改那个一个对象 删除那一个对象
public MainViewModel()
{
AddBookCommand = new RelayCommand(add);
EditBookCommand = new RelayCommand<Book>(edit, book => book != null);
DeleteBookCommand = new RelayCommand<Book>(delete, book => book != null);
AllBooks = new ObservableCollection<Book>(BookData.GetBook());
AllBooks = new ObservableCollection<Book>(BookData.GetBook());
}
private void add()
{
var mesaage = "ss";
// throw new NotImplementedException();
}
private void delete(Book obj)
{
// throw new NotImplementedException();
}
private void edit(Book obj)
{
// throw new NotImplementedException();
}
private RelayCommand addBookCommand;
public RelayCommand AddBookCommand
{
get { return addBookCommand; }
set { addBookCommand = value; }
}
private RelayCommand<Book> editBookCommand;
public RelayCommand<Book> EditBookCommand
{
get { return editBookCommand; }
set { editBookCommand = value; }
}
public RelayCommand<Book> DeleteBookCommand { get; set; }
Mainwindow
通过使用 Command 绑定 传参用CommandParameter
<StackPanel Orientation="Horizontal">
<Button
Padding="5"
Command="{Binding AddBookCommand}"
Content="添加" />
<Button
Margin="10,0,0,0"
Padding="5"
Command="{Binding EditBookCommand}"
CommandParameter="{Binding SelectedBook}"
Content="编辑" />
<Button
Margin="10,0,0,0"
Padding="5"
Command="{Binding DeleteBookCommand}"
CommandParameter="{Binding SelectedBook}"
Content="删除" />
</StackPanel>