zoukankan      html  css  js  c++  java
  • 看书不仔细的下场

    不算是日志,因为没有一日一记,不算心得,但是又想将自己在工作中的所感所想记录下来,人有的时候就这样,在矛盾中挣扎,有的时候一个想法从脑子中一闪而过,觉得有意思,但是却不想花点时间记录下拉,若干天的一个瞬间,有记的似乎有这个事情,但是却忘到脑后了,然后又煞费苦心的在大脑中搜索,如果能记录下来,就算是忘记了,到时候也容易翻出来,也可在闲暇的时候看看,所谓温故而知新!

    今天要写的就是WPF中的模板,模板在我学习WPF的过程中是一个难点,但是它确是WPF中的一个精华所在,通过模板可以定义控件的外观,通过模板可以定义数据的显示方式,这是何等的自由,将创造力交给了大家,但是对于WPF中的模板,我再学习中经常不得其精髓,今天翻阅了以前自己积累的博客,品味一番。

    WPF的模板有控件模板和数据模板,如上面所说的,前者是改变已有控件的外观,而后者是定义了数据的展示方式,在WPF中有一类控件有一个Content属性,这个是一个Object对象,在面向对象的世界里一切都是对象,所以content可以容纳任何东西,管你是字符串,数组,还是其他控件或者对象等,一个疑问,给Content复制之后,它是如何将其内容显示出来,这个就是数据模板的作用了。

    但是今天在写一个测试的时候,死活得不到想要的效果,最后还是被自己打败了,我想将我定义的一个类的内容(Name和Gender)显示在一个自定义的模板中:

    <Window x:Class="WpfContent.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
           
    
        </Window.Resources>
        <Grid>
            <Button x:Name="test">
                <Button.ContentTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <Button Content="{Binding Name}" Width="100" Height="50"></Button >
                            <Button  Content="{Binding Gender}"  Width="100" Height="50"></Button >
                        </StackPanel>
                    </DataTemplate>
                    
                </Button.ContentTemplate>
            </Button>
            
        </Grid>
    </Window>

    后台代码很简单:

    public MainWindow()
            {
                InitializeComponent();
                TName lx = new TName()
                {
                    Name = "刘宇",
                    Gender = ""
                };
    
                test.Content = lx;
            }

    类的结构如下:

    class TName
        {
            public string Name {get;set;}
            public string Gender {get;set;}
    
            //public string Name; 写成字段就不行
            //public string Gender;
        }

    开始的时候我用的是注释掉的,也就是字段,但是效果一直不出来,然后将字段换成了属性,居然就可以了:

    原来绑定的时候只能用属性,而不能用字段!至于为什么,其实书上都有,原来是自己太马虎了。

  • 相关阅读:
    PythonIDE
    Python学习笔记六:return的用法
    Python学习笔记三:逻辑操作符
    Python编程实现对CodeSys中ST代码的自动排版(一)
    Python学习笔记十二:列表(4)len 、in、For的使用
    Python学习笔记七:字符串的操作(一)
    Python学习笔记五:while语句
    Python编程实现对CodeSys中ST代码的自动排版(二)
    Python学习笔记十:列表(2)列表元素的读写
    Python学习笔记九:列表(1)列表元素介绍及创建方法
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/3499621.html
Copyright © 2011-2022 走看看