首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FallbackValue和TargetNullValue在UWP和WinUI3中有什么区别?

FallbackValue和TargetNullValue在UWP和WinUI3中有什么区别?
EN

Stack Overflow用户
提问于 2022-09-06 09:30:32
回答 1查看 56关注 0票数 0

有人能告诉我FallbackValueTargetNullValue的确切区别吗?我知道它们是非常相似的,但是我想更多地了解那些想要使用的边缘用法,无论是使用两个中的一个还是使用使用两个中的一个都有意义。

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 10:46:58

基本上,

  • FallbackValue是在绑定本身设置为fails.
  • TargetNullValue时设置的,而绑定的源是null.

这些是我在WinUI 3中得到的结果。

平原结合

代码语言:javascript
复制
public string TestText { get; set; } = "Binding succeeded!";
代码语言:javascript
复制
<TextBlock Text="{x:Bind TestText}" />
  OR
<TextBlock Text="{Binding TestText}" />

TextBlock显示“绑定成功”。

Case#1

x:BindFallbackValue/TargetNullValue,错误的名字

代码语言:javascript
复制
public string? TestText { get; set; } = "Binding succeeded!";
代码语言:javascript
复制
<TextBlock Text="{x:Bind Test, FallbackValue='Binding failed!'}" />
  OR
<TextBlock Text="{x:Bind Test, TargetNullValue='Source is null!'}" />

您将得到一个编译错误,因为x:Bind在编译时检查源代码。

Case#2

x:BindFallbackValue,空源

代码语言:javascript
复制
public string? TestText { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{x:Bind TestText, FallbackValue='Binding failed!'}" />

TextBlock没有显示任何东西(空)。

Case#3

BindingFallbackValue,名字不对

代码语言:javascript
复制
public string TestText { get; set; } = "Binding successed!";
代码语言:javascript
复制
<TextBlock Text="{Binding Test, FallbackValue='Binding failed!'}" />

TextBlock显示FallbackValue“绑定失败!”。

Case#4

x:BindTargetNullValue,空源

代码语言:javascript
复制
public string? TestText { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{x:Bind TestText, TargetNullValue='Source is null!'}" />

TextBlock显示TargetNullValue "Source!“。

Case#5

BindingTargetNullValue,空源

代码语言:javascript
复制
public string? TestText { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{Binding TestText, TargetNullValue='Source is null!'}" />

TextBlock没有显示任何东西(空)。

Case#6

BindingFallbackValueTargetNullValue,空源

代码语言:javascript
复制
public string? TestText { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{Binding TestText, FallbackValue='Binding failed!', TargetNullValue='Source is null!'}" />

TextBlock显示FallbackValue“绑定失败!”。

Case#7

x:BindFallbackValueTargetNullValue,空源

代码语言:javascript
复制
public string? TestText { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{x:Bind TestText, FallbackValue='Binding failed!', TargetNullValue='Source is null!'}" />

TextBlock显示TargetNullValue "Source!“。

Case#8

x:Bind/BindingTargetNullValue,空ViewModel

代码语言:javascript
复制
public ViewModel? ViewModel { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{x:Bind ViewModel.TestText, TargetNullValue='Source is null!'}" />

TextBlock没有显示任何东西(空)。

Case#9

x:Bind/BindingFallbackValue,空ViewModel

代码语言:javascript
复制
public ViewModel? ViewModel { get; set; } = null;
代码语言:javascript
复制
<TextBlock Text="{x:Bind ViewModel.TestText, FallbackValue='Binding failed!'}" />

TextBlock显示FallbackValue“绑定失败!”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73619734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档