首页 > 其他分享 >关于之前写的动态字符串的绑定再说一点

关于之前写的动态字符串的绑定再说一点

时间:2024-06-30 23:21:04浏览次数:14  
标签:content string 绑定 Content 字符串 动态 public

1、我今天发现一个奇怪的事情
我之前写的关于动态字符串的绑定
https://www.cnblogs.com/guchen33/p/18060276

  <TextBlock
      Width="200"
      Height="30"
      FontSize="20"
      Text="{Binding Content, StringFormat={}{0}!}" />
	  
    public class StringFormatViewModel:BindableBase
    {
        private string _content;

        public string Content
        {
            get => _content;
            set =>SetProperty(ref _content, value);
        }

        public StringFormatViewModel()
        {
            Content = "HelloWorld";
        }
    }

打印出来的结果是HelloWorld!

我以为这就完了
今天我试着给Button写出问题了

<Button
      Width="200"
      Height="30"
      FontSize="20"
      Content="{Binding Content, StringFormat={}{0}!}" />
	  
    public class StringFormatViewModel:BindableBase
    {
        private string _content;

        public string Content
        {
            get => _content;
            set =>SetProperty(ref _content, value);
        }

        public StringFormatViewModel()
        {
            Content = "HelloWorld";
        }
    }

我发现Buton的内容没变,还是HelloWorld,没有感叹号
查看源码,发现
public string Text { get; set; }
public object Content { get; set; }
在查看BindingBase。发现
image

所以TextBlock是字符串的拼接
我们继续看StringFormat
Gets or sets a string that specifies how to format the binding if it displays the bound value as a string.A string that specifies how to format the binding if it displays the bound value as a string.
意思是
获取或设置一个字符串,该字符串指定在绑定值显示为字符串时如何设置绑定的格式。一个字符串,指定在绑定值显示为字符串时如何设置绑定的格式。
StringFormat是为string类型的绑定设计的,所以它不能直接应用于Button的Content属性。这就是为什么当你尝试直接在Button的Content属性上使用StringFormat时没有效果的原因。
看它前面大写的String就知道了,我要是英文好Format是格式的意思,我也应该直到它是对string的扩展
所以我将Content改成TextBlock试下,成功了

<Button
    Width="200"
    Height="30"
    FontSize="20">
    <Button.Content>
        <TextBlock Text="{Binding Content, StringFormat={}{0}!}"/>
    </Button.Content>
</Button>

标签:content,string,绑定,Content,字符串,动态,public
From: https://www.cnblogs.com/guchen33/p/18277151

相关文章

  • 动态DP&动态树分治
    引入——最大权独立集问题:最大权独立集:对于一棵树,求出一个点集,这个点集里面的任意两个点都不相连。那么在所有这样的点集中,点权和最大的那个点集,就被成为最大权独立集。想要求出最大权独立集的点权和,我们只需要使用树上dp的方法即可实现设数组f[N][2]其中f[x][0]表示不选择......
  • c语言malloc、calloc 和 realloc动态分配内存函数的区别
    c语言malloc、calloc和realloc动态分配内存函数的区别malloc、calloc和realloc是C语言中用于动态内存分配的三个重要函数,它们之间有一些关键的区别。以下是这三个函数的区别,以分点表示和归纳的形式进行解释:内存来源和初始化:malloc:在堆上分配指定大小的内存块,但不进行初始化......
  • C语言力扣刷题11——打家劫舍1——[线性动态规划]
    力扣刷题11——打家劫舍1和2——[线性动态规划]一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划2、思路说明四、解题代码(附注释)一、博客声明  找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解题思路,开辟这个系列来记录......
  • java将整数转换为字符串
    1.toString适用于int类型publicclasstest{ publicstaticvoidmain(String[]args){ inti=777; Stringstr=Integer.toString(i); System.out.println(str); }}2.valueOf 适用于int、double、boolean和Object类型publicclasstest{ public......
  • 力扣每日一题 6/30 记忆化搜索/动态规划
    博客主页:誓则盟约系列专栏:IT竞赛专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • AI数据分析012:动态展示全球第一股英伟达10年股价走势
    文章目录一、介绍二、输入内容三、输出内容一、介绍英伟达在过去十年的股价走势展示了其在市场上的强劲表现和显著增长。自1999年上市以来,英伟达的股价经历了多次显著的涨幅,并在2024年达到了历史新高。从2023年6月的数据来看,英伟达的股价为386.54美元/股,市值为9......
  • AI数据分析013:根据时间序列数据生成动态条形图
    文章目录一、介绍二、输入内容三、输出内容一、介绍动态条形竞赛图(BarChartRace)是一种通过动画展示分类数据随时间变化的可视化工具。它通过动态条形图的形式,展示不同类别在不同时间点的数据排名和变化情况。这种图表非常适合用来展示时间序列数据的变化,能够直......
  • SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析
    ......
  • Python和MATLAB粘性力接触力动态模型半隐式欧拉算法
    ......
  • C语言教程-11-字符串
    title:C语言教程-11-字符串tags:[C]categories:C语言教程description:最重要的交互信息-字符串及其存储,操作提要:本章要讲解字符串的内容.同时会使用到前面基本输入输出一章中讲解的各种输入输出函数和数组,若不了解请自行复习.注意:本章需要的前置知识为:1.......