20240301 wpf 中Bingding相关内容

1)目前我使用过程中遇到的binding主要有三种,一种是bingding到界面上的元素,一种是与颞部数据bingding,还有一种是命令bingding,命令bingding的东西后续梳理

2)bingding到界面数据这个复杂的还涉及到数据转换之类的,暂时没有学习到,下图中的

<TextBox Text="{Binding ElementName=slider1,Path=Value}"/> 就是绑定到了元素上,首先给元素指定一个名字,好找到,当然也有方法不命名的,但是不直观,我还没有学习;

        <StackPanel Grid.Column="1" >
            <Slider  x:Name="slider1"  SmallChange="0.1"  Margin="5" Width="100" Grid.Column="1" Grid.Row="1" Height="30"  Minimum="-100" Maximum="100" />
            <TextBox Text="{Binding ElementName=slider1,Path=Value}"/>
            <TextBox x:Name="TextBox1"  Text="{Binding   man.Name }"/>
            <TextBox Text="{Binding ElementName=TextBox1,Path=Text}"/>
            
        </StackPanel>

3)bingding到对应的内部数据的就是下面的方法,首先在程序中要有一个类,类中有 Name这个字段;然后可以指定Text与Namebingding;

4)首先这些必须实例化,然后才能操作,DataContext就是当前XAML文件的数据源指定forDataContext,就是下面这个类的bingding,这个类继承ObservableObject,参考我之前的那个MVVM的相关的那个内容。

 //this.DataContext = forDataContext.man;
 this.DataContext = forDataContext;

5)这个地方我吃了一个很大的亏,原来我一直只能在指定数据源的时候指定到对应的类下面,例如上面this.DataContext = forDataContext.man; 然后 <TextBox x:Name="TextBox1"  Text="{Binding   Name }"/>;但是看到别人可以直接指定大A.B,自己就是不能,原来bingding的时候一定是要属性,不能是字段,就是A本身是属性,B也是属性才行,如果仅仅B是属性,A不是属性,则无法通过A.B 找到B。

    public class Person:ObservableObject 
    {

        //
        private string myname;
        public string Name { get { return myname; } set { myname = value; OnPropertyChanged(); } }

        //
        private int myage;
        public int Age { get { return myage; } set { myage = value; OnPropertyChanged(); } }
    }
    public class ForDataContext: ObservableObject
    {
        public ForDataContext() { 
            man =new Person() { Name ="男人", Age=22};
            women = new Person() { Name = "女人", Age = 20 };
        }

        public Person man { get; set; }
        public Person women { get; set; }
    }

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值