关于wpf使用binding绑定类属性无效的原因(基础型)

1.只表示个人理解的,没有系统学习,略微看看就直接进入wpf项目的

        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(string name)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }

自定义类继承:INotifyPropertyChanged,,,,以上代码千篇一律cv大法

比如在使用定时器获取当前时间,赋值给类中某个属性NowTime,ui中使用

<Label Name="timenow" Height="26"  Content="{Binding NowTime}"></Label>

后台就只在定时器中做

iPType_date = new IpType{NowTime= DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString() };

实现实时,应该会有人遇到无效的,百度的结果大多推荐this.content=this(这因为咱不是系统学习的,或许他们的这个this不代表这个this)

并放到init中,这个也无效果

对于这些文本性的我是在这个方法下加入:

timenow.Content=iPType_date;并能正常实现

用this.Content=iPType_date;也能实现,我为了标识所以用名字

我只做个实验,,或许是因为我没有能触发的...确实应该也是

IpType iPType_date;
        private void Timer_Tick(object sender, EventArgs e)
        {
            iPType_date = new IpType{NowTime= DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString() };
            timenow.DataContext = iPType_date;//

        }

2.list类型的不适用这个,似乎一定要绑定list(未研究,直接用source确实好用)

List<IpType> IPType = new List<IpType>();
            IPType.Add(new IpType { TypeName = "服务端" });
            IPType.Add(new IpType { TypeName = "客户端" });
            type_ide.ItemsSource = IPType;

<ComboBox x:Name="type_ide"  ItemsSource="{Binding TypeName,Source=IPType}" DisplayMemberPath="TypeName" SelectedValuePath="TypeName" SelectedValue="{Binding TypeName}"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值