1
我相信這個問題的解決方案是顯而易見的,但我根本無法弄清楚。我嘗試了所有我能找到的答案,但沒有任何希望。WPF按鈕內容綁定
問題
我有保持按鈕一個簡單的WPF形式。按鈕的文本由視圖模型定義,該視圖模型在點擊時更改文本內容。爲了完整起見,下面是我的xaml和後面的視圖模型。
XAML:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vms="clr-namespace:MyVm"
Height="163.762" Width="201.758" WindowStyle="ToolWindow" ResizeMode="NoResize" Topmost="True" WindowStartupLocation="CenterScreen">
<Window.DataContext>
<vms:MyVm />
</Window.DataContext>
<Button Name="Action" Content="{Binding Path=NextAction, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Margin="0" MinHeight="50" FontWeight="Bold" FontSize="16" Click="Action_Click"></Button>
</Window>
視圖模型:
public class MyVm: INotifyPropertyChanged
{
private String _nextAction = "START";
public String NextAction {
get { return _nextAction; }
set
{
_nextAction = value;
OnPropertyChanged("NextAction");
}
}
public void ExecuteAction()
{
if (_nextAction == "START")
NextAction = "STOP";
if (_nextAction == "STOP")
NextAction = "START";
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
public void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
問題
當我按一下按鈕,我希望文字改變從 「開始」 「STOP」反之亦然。
- 視圖模型中的邏輯似乎工作正常。
- 正確調用
OnPropertyChanged
。 - 內
OnPropertyChanged
的handler
不是null
點擊按鈕對UI沒有影響。我究竟做錯了什麼?
感謝您的回答,更改綁定模式並沒有幫助:( – GETah 2014-09-26 08:59:20
查看更新....... – BenjaminPaul 2014-09-26 08:59:54
+1。aghghgh,笨我!!!非常感謝! – GETah 2014-09-26 09:02:07