【问题标题】:Can a Binding value be created as a XAML Page resource?可以将绑定值创建为 XAML 页面资源吗?
【发布时间】:2018-08-04 02:28:13
【问题描述】:

您好,对于 UWP 应用程序中设计时绑定数据的快速 UI 测试,我想知道是否有一种方法可以将绑定值创建为 XAML 中的资源。因此,不必创建模型,而是在设计时在 Page.Resources 中实例化该模型,我只想创建一些可以用作绑定的常量。

以下是一些我希望测试绑定在哪里工作的示例:

<TextBlock Text="{Binding title, ConverterParameter=lower, Converter={StaticResource StringFormatConverter}, Mode=TwoWay}" />

<TextBlock Text="{Binding title}" />

考虑到这种情况,我可以说将标题定义为一个命名键,其字符串值可以在上面使用吗?

请注意,我使用的是 Binding 而不是 x:Bind,因为我想使用设计时数据并且我不想依赖于使用 FallbackValue 参数。

感谢您的任何想法!

瑞克

【问题讨论】:

    标签: xaml binding uwp design-time


    【解决方案1】:

    您不能直接绑定到静态资源,但可以改为绑定到静态资源的属性。

    您可以创建一个实现INotifyPropertyChanged 的类,该类具有Title 之类的属性。然后,您将创建此类的一个实例并将其存储为资源:

    Application.Current.Resources[ "Data" ] = new MyDataClass();
    

    现在你可以像这样在绑定中使用它:

    <TextBlock Text="{Binding Title, Source={StaticResource Data}}" />
    

    【讨论】:

    • 好的,所以至少仍然需要一个类。这是一个好主意,我会检查一下,可能是一种简化一些快速 UX 测试的方法。谢谢!
    • 是的,你至少需要这个类。原因可能是绑定的源通常应该实现INotifyPropertyChanged。如果您知道该值将被“硬编码”到资源中,您可以执行类似 Text="{Binding Source={StaticResource Title}}" 之类的操作,但这没有用,因为您可以直接执行 Text="{StaticResource文本}”无论如何。如果您期望值发生变化,那么类是最佳选择。
    • 这很有帮助。出于好奇,是否可以使用从 StaticResource 获取其值的 Binding' FallbackValue?我尝试使用这个: my category 以及 Text="{Binding Status, FallbackValue={StaticResource greeting}'}" 和 TextBlock 但这被忽略了在 UWP XAML 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多