为了账号安全,请及时绑定邮箱和手机立即绑定

WPF DataGrid绑定的问题

WPF DataGrid绑定的问题

沧海一幻觉 2018-09-13 06:07:49
在设置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>
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

SelectedItem="{Binding 字段1}"

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

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


查看完整回答
反对 回复 2018-09-24
?
波斯汪

TA贡献1811条经验 获得超4个赞

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

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


查看完整回答
反对 回复 2018-09-24
  • 2 回答
  • 0 关注
  • 739 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信