Silverlight中的Combobox学习


Silverlight中的Combobox同HTML中的Select是一样的,都有类似中Option项,在SL中称为Item

 

SL中的Combobox接受一个可枚举对象作为其ItemSource,可以使用复杂对象做为 ItemSource,如List,

List<自定义对象>,等等.....

 

List list = new List() { "A", "B", "C", "D", "E", F", "G", "H", "I" }; this.combobox.ItemsSource = list;

 

如果要使用复杂对象,会涉及到一个属性,DisplayMemberPath  [获取或设置为每个数据项显示的属性的名称或路径。]

 

如有一个对象 A

 

public class A { public string Name { get; set; } public int Age { get; set; } }

 

其ItemSource使用List , DisplayMemberPath  = "Name" ;表示使用属性Name来作为Text项,类似HTML中Select的text和value 。为因其可以接受复杂对象,所以无真正意思上Value的概念,可以通过选择项得到 A对象,当然也可以得到A对象里面的所有内容。

 

因为 DisplayMemberPath  还可以表示路径,所以如果复杂对象里面还有复杂对象,则需要写出具体显示的路径,如:

public class A { public string Name { get; set; } public B BB { get; set; } } public class BB { public string C { get; set; } }

 

其ItemSource使用List , DisplayMemberPath  = "BB.C" ;表示使用属性C来作为Text项。


几个重要的属性:

Min/MaxHeight;Min/MaxWeight

 

MaxDropDownHeight:下拉框最大高度,超过此高度自动出滚动条

Items:项

IsDropDownOpen:下拉框是否打开

SelectedIndex:

SelectedItem:

 


重要事件:

SelectionChanged :选择项改变

MouseWheel:鼠标滚动

 

void combobox_MouseWheel(object sender, MouseWheelEventArgs e) { int next = this.combobox.SelectedIndex - Math.Sign(e.Delta); if (next != -1 && next != this.combobox.Items.Count) { this.combobox.SelectedIndex -= Math.Sign(e.Delta); } }

 

DropDownOpened:下拉框打开后

DropDownClosed:下拉框半闭后

 

你可能感兴趣的:(SilverLight学习记录,silverlight,string,class,list,html,object)