如何在棱镜中使用委托命令发布按钮点击事件

how to publish button click event using delegate command in prism

我有一个按钮 xamlgrid 另一个 xaml 我想在单击按钮时填充网格中的值。如何使用 Prism.

 public class buttonloadviewmodel: NotificationObject
        {
            public DelegateCommand<object> combochange { get; set; }
            private readonly IEventAggregator eventaggs;
            public buttonloadviewmodel(IEventAggregator eventaggs)
            {
                this.eventaggs = eventaggs;
                InititializeDelegateCommand();
                                }
            private void InititializeDelegateCommand()
            {
                combochange = new DelegateCommand<object>(onselection, canexecute);
            }
                private bool canexecute(object arg)
            {
                return true;
            }

            private void onselection(object obj)
            {
                eventaggs.GetEvent<buttonclickaevent>().Publish(Button.ClickEvent);
            }
                List<string> usenamse = new List<string>();
            public List<string> useNamse
            {
                get { return usenamse; }
                set
                {
                    usenamse = value;
                    RaisePropertyChanged(() => this.useNamse);
                }
            }
        }

首先,Grid class 没有 ItemsSource 属性,因此您无法轻松绑定 Items。我使用 DataGrid

而不是 Grid

MainWindow.xaml

 <Window.DataContext>
        <local:ViewModel></local:ViewModel>
    </Window.DataContext>
    <Grid>
         <StackPanel>
             <Button Command="{Binding AddCommand}">Add data</Button>
             <DataGrid ItemsSource="{Binding Items}">
             </DataGrid>
         </StackPanel>
    </Grid>
</Window>

ViewModel.cs

public class ViewModel
    {
        public DelegateCommand AddCommand { get; private set; }
        public ObservableCollection<String> Items{get; set; } = new ObservableCollection<string>();

        public ViewModel()
        {
            AddCommand = new DelegateCommand(AddMethod);
        }

        private void AddMethod()
        {
            Items.Add("Hello");
        }
    }

我希望这个小示例可以帮助您了解绑定和命令。