WPF 高级篇 MVVM (MVVMlight)事件

这篇我们继续上一篇功能 实现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>

发布了279 篇原创文章 · 获赞 43 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/q465162770/article/details/103595909