首页 > 解决方案 > 使用命令更改窗口控制值

问题描述

单击按钮时我需要更改标签值,以便它会说“请稍候”。

该按钮有一个命令,但由于该命令不知道窗口控件,因此我无法从命令中引用它们。

作为参考,这是标签:

<Label Content="{Binding EuroCurrentRate}" Margin="450,226,672,351" x:Name="EurLabel" Foreground="White"  FontSize="22" >

这是命令:

    class EuroClickCommand : ICommand
{


  public bool CanExecute(object parameter)
    {
        return true;
    }
    public event EventHandler CanExecuteChanged;

    public void Execute(object parameter)
    {
        var viewModel = (RTViewModel)parameter;

        viewModel.OpenGraph();// When button is pushed fire this function
    } 

}

ViewModel 中的属性:

    public ICommand ButtonClickCommand
    {
        get
        {
            return new EuroClickCommand();
        }
    }

    public void OpenGraph()//Fire commands by button binding and command mechanism
    {

        AreaChart.MainWindow myWindow = new AreaChart.MainWindow();
        myWindow.Show();


    }

我应该如何从命令中更改标签内容?

标签: wpf

解决方案


Label 绑定到 viewmodel 属性:

<Label Content="{Binding EuroCurrentRate}" .../>

在命令方法中更改该属性:

public void Execute(object parameter)
{
    var viewModel = (RTViewModel)parameter;
    viewModel.EuroCurrentRate = "Please wait";
    viewModel.OpenGraph();// When button is pushed fire this function
} 

或更可能EuroCurrentRate = "Please wait";应该在 OpenGraph() 方法中完成


推荐阅读