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