Datagrid 的 SelectItem 和 SelectValue 如何区分、DataContext 和 ItemSource 在绑定时该绑哪个?

1.selecteditem、selectedvalue、selectedvaluepath三个属性

  场景:      

1 class T
2 {
3     public string A { get; set; }
4     public string B { get; set; }
5 }

  列表控件绑定点List<T>对象上,鼠标选择列表项某一行数据

  现象:

  selecteditem:值为List<T>中选择的那一条,数据类型为T

  当selectedvaluepath设置未设置时:selectedvalue数据和selecteditem相同

  当selectedvaluepath设置为“A”时:selectedvalue数据为T.A,数据类型为A的数据类型

2.列表控件绑定在DataContext和ItemSource上有何不同?

  DataContext是数据上限文,ItemSource是数据列表

  当控件的上级对DataContext赋值,控件自身的DataContext将继承上级的值。

  一般情况下,数据绑定的写法是:

    Itemsource={Binding xxx}

  或者 DataContext={Binding xxx} Itemsource={Binding}

  两种效果相同

  

原文地址:https://www.cnblogs.com/lztwj/p/6026055.html