我的视图 Home.xaml 中有以下按钮。我将它绑定到一个名为 StartStopLabel 的属性。我已经ICommand
在同一个视图中实现了界面,我可以在单击开始后将标签更改为文本“停止”(这是我在视图的构造函数中设置的初始状态this.StartStopLabel="Start",this.ButtonStatus="click on start button")
,但我无法做相反的事情,将按钮的标签从“停止”更改为“开始”。我的意思是ICommand
当按钮标签显示“停止”时不会通知点击事件。
一旦用户单击“停止”按钮(即当按钮标签显示文本“停止”时),我想将文本块“BtnSTatus”的文本更改为“您已单击开始按钮”并返回“单击开始”当按钮标签再次显示文本“开始”时。
任何建议如何解决这两个问题?
我的观点:
<Button Name="btnStartStop" Content="{Binding StartStopLabel}" Command="{Binding ClickCommand}" />
<TextBlock Name="BtnStatus" Content="{Binding ButtonStatus}">
查看.cs代码:
private string _startStopLabel;
public string StartStopLabel
{
get
{
return _startStopLabel;
}
set
{
_startStopLabel = value;
RaisePropertyChanged("StartStopLabel");
}
}
private string _ButtonStatus;
public string ButtonStatus
{
get
{
return _ButtonStatus;
}
set
{
_ButtonStatus = value;
RaisePropertyChanged("ButtonStatus");
}
}
ClickCommand 事件是 View.cs 中 ICommand 实现的一部分:
public System.Windows.Input.ICommand ClickCommand
{
get
{
return new DelegateCommand((o) =>
{
this.StartStopLabel = "Stop";
Task.Factory.StartNew(() =>
{
//call service on a background thread here...
});
});
}
}