Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
控件未命中集合属性wpf mvvm_Wpf_Mvvm - Fatal编程技术网

控件未命中集合属性wpf mvvm

控件未命中集合属性wpf mvvm,wpf,mvvm,Wpf,Mvvm,我有一个用textbox(WPF)绑定的双类型属性。当我用空文本框失去焦点时,控件没有点击set属性。 如果我给出了一个有效的输入,比如10.2,那么它就击中了viewmodel的set属性。即使存在无效数据,是否有任何解决方案可以点击控制集属性 Settings.xaml 设置VIEWMODEL.cs 专用双天际线峰值比 公共双天际线峰值比 { 得到 { 收益率; } 设置 { skylineMinPeakRatio=值; 不动产变更(“天际线峰值比率”); } } 您有一些方法来处理这个

我有一个用textbox(WPF)绑定的双类型属性。当我用空文本框失去焦点时,控件没有点击set属性。 如果我给出了一个有效的输入,比如10.2,那么它就击中了viewmodel的set属性。即使存在无效数据,是否有任何解决方案可以点击控制集属性

Settings.xaml


设置VIEWMODEL.cs

专用双天际线峰值比
公共双天际线峰值比
{
得到
{
收益率;
}
设置
{
skylineMinPeakRatio=值;
不动产变更(“天际线峰值比率”);
}
}

您有一些方法来处理这个问题(顺便说一句,您在wpf中得到一个强制转换异常,这就是为什么您的属性设置程序没有被命中)

  • 在一个完美的mvvm世界中,您可以将所有属性设置为string类型,您的绑定将正常工作,您也可以轻松地进行错误验证。这样做的缺点是,您现在必须将属性转换为正确的类型,只要您的值将用于模型
  • 在您的特殊情况下,可以使用可空双精度。但是如果有人在你的文本框里放了一些字母,你又会遇到同样的问题。你的二传手打不中。您可以使用行为或数字文本框来处理此问题

  • 请共享您的代码“……设置属性,即使存在一个无效数据”——这本身就是一个矛盾。考虑使用<代码> OnPrimTyTrchange(NoMeof(SkyLimeMin PekAc比值));代码>因为重命名属性时更容易处理。