Rhy*_*ous 14
如果您使用的是MVVM,请将内容绑定到值并将命令绑定到function.
<Button Content="{Binding ButtonText}" Command="{Binding ButtonClickCommand}"/>
Run Code Online (Sandbox Code Playgroud)
当然,然后在ViewModel中将String ButtonText和ButtonClickCommand作为属性.
private string _ButtonText;
public string ButtonText
{
get { return _ButtonText ?? (_ButtonText = "Add"); }
set
{
_ButtonText = value;
NotifyPropertyChanged("ButtonText");
}
}
private ICommand _ButtonClickCommand;
public ICommand ButtonClickCommand
{
get { return _ButtonClickCommand ?? (_ButtonClickCommand = _AddCommand); }
set
{
_ButtonClickCommand = value;
NotifyPropertyChanged("ButtonClickCommand");
}
}
private ICommand _AddCommand = new RelayCommand(f => Add());
private ICommand _SaveCommand = new RelayCommand(f => Save());
private void Add()
{
// Add your stuff here
// Now switch the button
ButtonText = "Save";
ButtonClickCommand = SaveCommand;
}
private void Save()
{
// Save your stuff here
// Now switch the button
ButtonText = "Add";
ButtonClickCommand = AddCommand;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以让ButtonClickCommand更改属性,绑定可以处理所有事情.
将最后一次单击的值存储在该按钮的tag属性中,并在单击时检查其值.
标签说明
获取或设置可用于存储有关此元素的自定义信息的任意对象值.
要么
void MyButton_OnClick(object sender, RoutedEventArgs e)
{
if(mybutton.Content.ToString() == "Add")
{
\\ Lines for add
mybutton.Content = "Save";
}
else
{
\\ Lines for Save
mybutton.Content = "Add";
}
}
Run Code Online (Sandbox Code Playgroud)
我同意Surfens的回答,这里的问题不是一个完美的例子,ToggleButton因为"保存"和"添加"一个非常不同的操作,每个操作都应该在相应的按钮上设置自己的"ICommand".
但是这里有一些样式会根据IsCheckedToggleButton 的值改变内容.
如果未选中该按钮,则内容将为"ValueForUnToggledState",并在选中时更改为"ValueForToggledState".
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content" Value="ValueForUnToggledState" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="ValueForToggledState" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
Run Code Online (Sandbox Code Playgroud)
这比其他一些答案更像WPF.
| 归档时间: |
|
| 查看次数: |
44294 次 |
| 最近记录: |