2016-05-15 58 views
1

我有一個文本框綁定到我的視圖模型的屬性之一WPF XAML綁定的文本框的屬性不能清除

 <TextBox x:Name="box" Height="20" TextWrapping="Wrap" Text="{Binding name}"/> 

viewModel.cs:

public string name { get; set; } 
    [...] 
    public void clear(){ 
    name = ""; 
    } 

AddCommand:ICommand的類:

public void Execute(object parameter){ 
    //do some stuff 
    viewModel.clear(); 

    } 

其他一切都很完美。我可以讀取文本框並使用它們在viewModel中進行一些計算,然後將這些計算綁定到要顯示的標籤。但是我讀完這些文本後就無法清除這些文本框。我嘗試將綁定設置爲mode = twoway,但仍然不起作用

回答

1

您需要告訴WPF該屬性已更改。

類似

private string _name; 
public string name 
{ 
    get 
    { 
     return _name; 
    } 
    set 
    { 
     _name = value; 
     PropertyChanged(this, new PropertyChangedEventArgs("name")); 
    } 
} 

ofcourse大多數人的東西會讓一個基類,以避免調用該屬性更改法,使複雜的參數。

+0

完美的工作表示感謝。什麼以及如何你的意思是由一個基類,但? – user1294510

+1

@ user1294510查看https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx此鏈接。基類將被稱爲像ViewModelBase類似的東西,並實現方法NotifyPropertyChanged,如示例中所示。所以你可以調用NotifyPropertyChanged()而不是喂這個+ new propertychangedeventargs – Steve