这篇文章本来就是答案,但它只适用于 WPF。 UWP 和 WinUI3 没有多重绑定。
如何在 UWP/WinUI3 中编写该代码?
(多)在 UWP 或 WinUI3 中将列表绑定到 TextBlock
正如 Johnny Westlake 所说,您可以使用 x:bind 方法将列表绑定到
TextBlock
。例如,使用 String.Format
方法格式化列表,然后在 TextBlock
中渲染。有关更多信息,请参阅此文档。
<Page
xmlns:sys="using:System"
xmlns:local="using:MyNamespace">
<ListView ItemsSource="{x:Bind Items}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Item">
<TextBlock Text="{x:Bind sys:String.Format(x:Null, '{0} is now available in {1}', FirstName, LastName)}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Page>
我相信 sys:String.Format 是带有 UWP 接口的 winui3,但如果您使用的是较新的 winui3“Microsoft:”(而不是“Windows:”)Win App SDK 接口,则不支持。在最新界面而不是 UWP 界面下实现等效的最佳方法是什么?
这对我有用(WindowsAppSDK 1.5.24):
<TextBlock Margin="5, 0" Text="{x:Bind sys:String.Format(x:Null, '{0}% {1}Wh', XamlSetRemoteCommandGUI.MyBatteryStateGUI.XamlBatteryLeftCapacityPercent, XamlSetRemoteCommandGUI.MyBatteryStateGUI.XamlBatteryLeftCapacityWh), Mode=OneWay}" />
XamlSetRemoteCommandGUI 在后台代码 (*.xaml.cs) 中定义为 DependencyProperty