我在WPF应用程序中工作,我遇到这种情况: - 在视图模型中,我有两个属性:数量和库存 - 在视图中我有一个绑定到数量的文本框 我想要的是允许最大数量只有在Stock文本框中输入的库存数量。例如,如果Stock = 3,那么无论我在数量的文本框中添加什么数字,如果更高,则将其设置为3。
我尝试过以下方法:
private int quantity;
public int Quantity
{
get { return quantity; }
set
{
if (value > Stock)
{
quantity = Stock;
}
else
{
quantity = value;
}
NotifyPropertyChanged("Quantity");
}
}
这个问题是在视图模型中数量设置为Stock但在视图中没有更新(如果我输入70作为Quantity,那么它在视图模型3中设置为Stock,但视图未更新)。文本框的绑定是两种方式,属性更改为更新源触发器。 我一直在考虑使用文本框丢失焦点。但我觉得这不是正确的做法。有没有人对此有所了解?
谢谢!
答案 0 :(得分:0)
这个问题是在视图模型中数量设置为Stock但在视图中没有更新(如果我输入70作为Quantity,那么它在视图模型3中设置为Stock,但视图未更新)。文本框的绑定是两种方式,属性更改为更新源触发器。我一直在考虑处理丢失焦点的文本框。
根据您的要求,您可以使用UpdateSourceTrigger
立即更新UWP中TextBox的来源。有关更多信息,请参阅以下代码。
<TextBox Text="{Binding Quantity,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}">
如果将UpdateSourceTrigger
设置为PropertyChanged
,则只要绑定目标值发生更改,绑定源就会更新。