我之前和之前创建并使用bool到可见性转换器,我忘了在绑定上使用转换器(我正在使用传统绑定)。我将视图中控件的visibility属性绑定到视图模型中的bool属性,令人惊讶的是它可以工作。所以我的问题是,如果它适用于传统绑定,为什么我们需要使用转换器?因为看起来编译器正在为我做转换。
我在Visual Studio Update 3中的UWP应用程序上进行了测试。 最低应用目标是10.0.10586 目标版本是10.0.14393
答案 0 :(得分:7)
有趣。这一直是一种痛苦,而且似乎没有太多宣传就修复了,我不知道这一点。
在WPF中,你总是必须使用ValueConverter,因为可见性不是bool。
我刚从项目中的{x:Bind ...}
中删除了一个BooleanToVisibility转换,但实际上它仍然有效。我从生成的代码中挖出了这个:
private void Update_ViewModel_ShowMessage(global::System.Boolean obj, int phase)
{
...
this.Update_ViewModel_ShowMessage_Cast_ShowMessage_To_Visibility(
obj ? global::Windows.UI.Xaml.Visibility.Visible
: global::Windows.UI.Xaml.Visibility.Collapsed
, phase);
...
}
显然它现在已经内置。
更新:
{x:Bind }
已宣布here,作为周年更新的一部分。而你确实需要针对14393或更高版本。对于旧版本,它仅适用于{Binding ...}
。