当我在TextBox控件中输入文本“abc”时,
<TextBox Text="{Binding V1, UpdateSourceTrigger=PropertyChanged}" />
其中V1是ViewModel中的UInt16属性
private UInt16 _V1;
public UInt16 V1
{
get { return _V1; }
set { SetProperty(ref _V1, value); }
}
UI将通知验证错误,但在ViewModel的EventHandler中,我无法找到发生的错误,以及实际输入的文本。那么什么是正确的方法呢,谢谢
1条答案
按热度按时间wixjitnu1#
要将数据从UI发送到VM,首先需要将绑定模式设置为
TwoWay
。然后,您需要调整ViewModel以公开
string
属性,因为TextBox.Text
是string
属性,因此不能直接双向绑定到数值类型。相反,您可以在VM中使用2个属性。
根据您的需要,您可以从一个属性的setter设置另一个属性。
请注意,我添加了一些
if
检查,以防止无限更新的堆栈溢出。