ste*_*n.s 12 silverlight wpf xaml win-universal-app uwp-xaml
在开发通用Windows应用程序(uwp)时,我经常需要查找如何在XAML中执行不同的操作.
一个问题是,我经常会得到一个不适用于UWP应用程序的WPF或Silverlight或Windows Phone解决方案.各种方言之间是否存在差异?
如果没有,这可能是即将发布的stackoverflow文档功能的一部分.我非常愿意参与我已经意识到的事情.
{x:Bind}标记扩展数据bing对于使用XAML是必不可少的。用于UWP应用程序的XAML语言提供了一种绑定类型:{x:Bind}标记扩展。
使用{Binding XXX}和{x:Bind XXX}基本上是等效的,不同之处在于x:Bind扩展名在编译时起作用,从而实现了更好的调试功能(例如断点)和更好的性能。
<object property="{x:Bind bindingPath}" />
Run Code Online (Sandbox Code Playgroud)
x:Bind标记扩展名仅适用于UWP应用。在此MSDN文章中了解有关此内容的更多信息:https : //msdn.microsoft.com/zh-cn/windows/uwp/data-binding/data-binding-in-depth。
Silverlight,WPF,Windows RT的替代方法:使用标准的{Binding XXX}语法:
<object property="{Binding bindingPath}" />
Run Code Online (Sandbox Code Playgroud)
大多数时候,您需要在XAML文件中导入名称空间。对于不同的XAML变体,此操作的完成方式有所不同。
对于Windows Phone,Silverlight,WPF,请使用clr-namespace语法:
<Window ... xmlns:internal="clr-namespace:rootnamespace.namespace"
xmlns:external="clr-namespace:rootnamespace.namespace;assembly=externalAssembly"
>
Run Code Online (Sandbox Code Playgroud)
Windows RT,UWP使用using语法:
<Page ... xmlns:internal="using:rootnamespace.namespace"
xmlns:external="using:rootnamespace.namespace;assembly=externalAssembly"
>
Run Code Online (Sandbox Code Playgroud)
多重绑定是WPF开发所独有的功能。它允许一次绑定到多个值(通常与MultiValueConverter一起使用)。
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource MyConverter}">
<Binding Path="PropertyOne"/>
<Binding Path="PropertyTwo"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
WPF以外的平台均不支持多重绑定。您必须找到替代解决方案(例如将代码从视图和转换器移动到视图模型)或像本文中那样重用第三方行为:http : //www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |