关于Silverlight中DataGrid有ComboBox列,鼠标或下拉条向下滚动时会自动触发SelectionChanged...求大神指导啊

小二哥哥有点帅 2014-11-10 08:38:11
如图:


选择好下拉框的值后,鼠标滑轮或拖拉下拉框后,再滑上去,发现前面选取的值都为空了,只有一个下框有值,监听SelectionChanged事件,发现只要滚动滑轮就会触发。以下是部分前端和后台的一点代码
前端:
<sdk:DataGridTemplateColumn Header="控件名称">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="80" ItemsSource="{Binding ComboboxList,Mode=TwoWay}" SelectionChanged="Control_Select">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Width="80" Text="{Binding Name,Mode=TwoWay}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
后台:
List<GroupInfo> list = new List<GroupInfo>();
//循环 RowCount次生成RowCount行数据
for (int i = 0; i <= RowCount; i++)
{
if (sNumber != 0)
{
string bn= beforeNum + "-";
list.Add(new GroupInfo { GroupNumber = bn + ((sNumber + i).ToString()),
ComboboxList = new List<Combo>() { new Combo() { Name = "抽屉配电柜" }, new Combo() { Name = "低压电容补偿柜" } } });
}
else
{
//MessageBox.Show("柜号不能为空");
break;
}
}
this.gridGroupInfo.ItemsSource = list;
...全文
220 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2014-11-12
  • 打赏
  • 举报
回复
引用 3 楼 Blue784327282 的回复:
学Silverlight没多久,很多都不懂啊。 根据用户的输入自动生成表格数据行,生成之后还能做修改,除了DataGrid控件还有其它的控件么?
比较方便的 就datagrid的了,因为它类似 excel。所有的cell操作都可以控制。
  • 打赏
  • 举报
回复
学Silverlight没多久,很多都不懂啊。 根据用户的输入自动生成表格数据行,生成之后还能做修改,除了DataGrid控件还有其它的控件么?
exception92 2014-11-11
  • 打赏
  • 举报
回复
wjq 2014-11-11
  • 打赏
  • 举报
回复
Silverlight的DataGrid为了性能,只生成可见区域的控件,拉动滚动条会导致后面的数据被绑定到可见行上,相应的控件的值改变,就出发了事件。 你首先不应该在普通模板内使用编辑控件,如果允许编辑,可以添加这列的编辑模板,这样用户双击单元格之后就出现ConboBox。 另外,使用WPF/Silverlight的数据绑定,就不要再去通过UI来控制业务逻辑了,如果相应字段变化,可以通过被绑定实体类的PropertyChanged事件来控制。

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧