這是一種在WPF應用程序中使用MVVM模式的新手段,我偶然發現了一種奇怪的情況。我實際上試圖在StackOverflow上做類似於Metainputtextbox的東西(當你寫一個新問題的時候)。WPF MVVM數據綁定 - 檢查空間,然後清除複選框
那麼,我嘗試做的事:
我有一個文本框(DOH!),並將其綁定到我的viewmodel中的屬性。 在設置屬性即時檢查空間('')如果有一個空間,但它不是空的(這意味着有一個metaword在那裏)我從空間修剪它並將其保存到我的私人財產。並調用updateProp。現在來了棘手的部分。在metaword被保存後,我想清除字符串和文本框,但是將屬性設置爲「」將會再次觸發整個事件。
XAML
<TextBox
Name="txtBoxMetaInput"
Text="{Binding Path=MetaInput, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
視圖模型
private string metaInput { get; set; }
public string MetaInput
{
get { return metaInput; }
set
{
if (value.Contains(' ') && String.IsNullOrEmpty(value) == false)
{
metaInput = value.Trim(' ');
saveTheMetaKeyWordToAnArrayOfMetawords();
this.OnPropertyChanged("MetaInput");
}
}
}
現在什麼缺失存在,我想清空文本框,並把它保存在metaword陣列後清除property's。
這個問題可能只需要在一個新的一雙眼睛:)
你是什麼意思? –
Imean是啊我認爲這是適用於財產和handeling,但它不會更新控制... –
@ user1057806它會 - 你只需要提高PropertyChanged爲該屬性*當你完成*。現在,你有效地將它提升2倍 - 最後只需要提升一次,以便更新控件。 –