首页 新闻 赞助 找找看

WPF DataGrid绑定的问题

0
悬赏园豆:20 [已解决问题] 解决于 2011-01-27 22:16

在设置DataGrid中的一列为ComboBox样式后,想实现效果为:打开下拉列表后显示一组数据,用了2种方法绑定数据。

1.用数组,MSDN中http://msdn.microsoft.com/zh-CN/library/ms748365.aspx有示例可以实现效果:

 

Public Sub New()
MyBase.Add(New PersonName("Willa", "Cather"))
MyBase.Add(New PersonName("Isak", "Dinesen"))
MyBase.Add(New PersonName("Victor", "Hugo"))
MyBase.Add(New PersonName("Jules", "Verne"))
End Sub

 

 

但问题是:其数组值如何动态增减变换?下面是我用了个笨方法但还是行不通,请给意见。

 

Dim 数组() As String = ({"Willa", "Isak", "Victor"})'这样可以灵活变换数值
For i As Integer = 1 To 数组.Length - 1
MyBase.Add(New PersonName(数组(i).ToString))
Next

 

 

 2.用绑定,但点击选中下拉列表中的值离开单元格焦点后,其单元格的内容不显示其选择的内容却显示成了文字:System.Data.DataRowView请教问题出在那里?

 

<DataGridTemplateColumn.CellEditingTemplate >
<DataTemplate >
<ComboBox SelectedItem="{Binding 字段1}"
DisplayMemberPath
="字段2"
ItemsSource
="{Binding Source={StaticResource DataSet1}, Path=表1}">
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

 

问题补充: 感谢关注,第一种方法已实现。 特别想知道第二种方法怎么实现,因为不用写代码。问题出在那里呢?
滴哦那个的主页 滴哦那个 | 初学一级 | 园豆:150
提问于:2010-09-09 22:18
< >
分享
最佳答案
0

SelectedItem="{Binding 字段1}"

感觉你这个绑定的不对!每个Item对应的应该是DataSet1的一项,而不是某个字段吧!类型不匹配了,显示当然不正确啦!

也不知道我这么想的对不对。

收获园豆:10
peony007 | 菜鸟二级 |园豆:397 | 2010-10-15 13:20
其他回答(1)
0

既然使用了ObservableCollection<T>,就应该能够解决你的第一个问题~

了解一下MVVM,你会发现很容易的

收获园豆:10
_A_A | 园豆:1139 (小虾三级) | 2010-09-11 23:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册