wpf - 使用命令更改窗口控制值
问题描述
单击按钮时我需要更改标签值,以便它会说“请稍候”。
该按钮有一个命令,但由于该命令不知道窗口控件,因此我无法从命令中引用它们。
作为参考,这是标签:
<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();
}
我应该如何从命令中更改标签内容?
解决方案
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() 方法中完成
推荐阅读
- javascript - 元素不可点击,因为另一个元素遮住了它,重叠的元素
- html - 他们不根据屏幕大小调整行和列类
- google-chrome - 如何更改 Chrome 74 中的默认黑色地址栏
- ruby - 使用包含?命令搜索包含数字和字母混合的字符串
- css - 如何为活动的引导程序 4 导航栏项目添加背景颜色
- r - 在 R 中创建具有固定断点的调色板
- applescript-objc - 使用 AppleScript-Objc 确定进度指示器
- java - 如何在@PostMapping 中返回值
- java - 对目标文件的引用。为什么/如何创建和使用它?
- python - 从数据库读取时在 Dask 数据帧中设置分区大小的问题