在WPF中加载屏幕时如何动态使按钮单击

我有一个按钮清除过滤器。我希望在屏幕加载时动态发生按钮单击事件。

    <Button Margin="10,0" commandparameter="Clear_Filter" Command="{Binding ButtonClicks}" >
                <StackPanel Orientation="Vertical">
                    <Image Source="/NextGen.Optik.UI.Presentation;component/Resources/clear_filters.png" Width="32" Height="32" Margin="0,2" />
                    <TextBlock Text="Clear Filters" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </StackPanel>
            </Button>

ViewModel:

      private UICommand _buttonClicks;
    public UICommand ButtonClicks
    {
        get
        {
            return _buttonClicks ?? (_buttonClicks = new UICommand(
                param => ButtonClickCommand(param),param => true
                ));
        }
    }
    public void ButtonClickCommand(object parameter)
    {

        switch (parameter.ToString().ToLower())
        {
            case "clear_filter":
                ClearFilter(); 
        }
    }
www2281100 回答:在WPF中加载屏幕时如何动态使按钮单击

您没有执行点击事件或Button,而是绑定了ICommand的{​​{1}}。为了做到这一点,公开Button的视图模型应该是视图的ICommand。或者,遍历视觉树以找到具有所需视图模型为其DataContext的元素:

MainWindow.xaml

DataContext

MainWndow.xaml.cs

<Window>
  <Window.DataContext>
    <ViewModel />
  </Window.DataContext>

  <Button Margin="10,0" CommandParameter="Clear_Filter" Command="{Binding ButtonClicks}" >
    <StackPanel Orientation="Vertical">
      <Image Source="/NextGen.Optik.UI.Presentation;component/Resources/clear_filters.png" Width="32" Height="32" Margin="0,2" />
      <TextBlock Text="Clear Filters" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </StackPanel>
  </Button>
</Window>
本文链接:https://www.f2er.com/3129283.html

大家都在问