我有兩個文本框,如果我更改其中一個值的值,則應計算另一個文本框中的值。這需要雙向工作。WPF在父對象的屬性更改時調用更新源觸發器xaml
在我的ViewModel我有一個名爲NewProductCount
private ProductCount newProductCount;
public ProductCount NewProductCount
{
get
{
return newProductCount;
}
set
{
newProductCount = value;
if (newProductCount.PackingUnits != 0 || newProductCount.SellingUnits != 0)
{
newProductCount.SellingUnits = (int)newProductCount.PackingUnits * SelectedProduct.PurchasePackaging.UnitsPerPackage;
newProductCount.PackingUnits = newProductCount.SellingUnits/SelectedProduct.PurchasePackaging.UnitsPerPackage;
}
NotifyPropertyChanged();
}
}
屬性/對象在我看來(XAML)我有兩個文本框一個StackPanel。 stackpanel的datacontext綁定到ViewModel中的NewProductCount屬性。在這個stackpanel裏面我有兩個文本框。第一個綁定到NewProductCount對象的PackingUnits屬性,第二個綁定到NewProductCount對象的SellingUnits屬性。現在的問題是,當我在其中一個文本框中更改某些內容時,我想要轉到ViewModel中的NewProductCount屬性的setter。
這是我查看樣子:
<StackPanel DataContext="{Binding NewProductCount}" >
<Label Content="Number of selling units:"/>
<TextBox Text="{Binding SellingUnits}"/>
<Label Content="Number of packing units"/>
<TextBox Text="{Binding PackingUnits}"/>
</StackPanel>
我自己也嘗試updatesourcetrigger(的PropertyChanged)對兩個文本框,但沒有火NewProductCount setter方法在我的視圖模型。
由於提前,
阿恩
它的SellingUnits和PackingUnits性能應該得到的制定者打你的時候鍵入文本框,而不是NewProductCount屬性。沒有爲此提出PropertyChanged事件。 – mm8
我認爲你對NewProductCount的使用方式感到困惑。你目前將它作爲一個StackPanel的DataContext綁定,那麼它是如何設置的? SellingUnits和PackingUnits屬性是否觸發PropertyChanged事件?你的ProductCount類是否實現INotifyPropertyChanged接口?同樣,所有TextBox綁定都應該是Mode = TwoWay來處理對模型屬性和用戶輸入更改的更改。 –