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

文章讲述了作者在WPF项目中如何使用INotifyPropertyChanged实现属性实时更新,以及列表绑定ComboBox控件的使用经验,重点提到了如何处理文本和列表类型的数据绑定问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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}"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值