找回密码
 立即注册

QQ登录

只需一步,快速开始

zxc9089
初级会员   /  发表于:2015-4-6 17:53  /   查看:10268  /  回复:6
请问wpf C1DataGrid DataGridComboBoxColumn列的数据源能根据其他列的值绑定不同数据源吗?

比如,C1DataGrid 中有两列:产品类型,产品名称。 如何将产品名称这列根据产品类型选择的项绑定下拉框数据源呢?

可以理解为联动的数据源绑定。

6 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-4-7 16:17:00
沙发
回复 1楼zxc9089的帖子

你说的是根据其他列的值更改Combobox的下拉框里的值么?

你可以使用ItemSource以及相关属性来设置。
具体的可以参考我们的随机安装示例,路径如下:
\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.DataGrid\CS\C1DataGrid_ComboCols2010

第二列的下拉框的值可以根据第一列的选择的值做更改。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-4-7 21:54:00
板凳
嗯 ,谢谢。  这个问题已解决,  但是我按照例子来做 如果让它自动生成列,下拉框没有问题,编辑状态取消后显示的是DisplayMemberPath设置的值。 但是当我列为手动在xaml中定义时,编辑状态取消后显示的却是SelectedValuePath的值。不知道有没有碰到过。
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-4-7 21:58:00
地板
回复 2楼Alice的帖子

我将demo的datagrid改为如下代码:
  1. <c1:C1DataGrid Name="grid" Margin="30" >
  2.             <c1:C1DataGrid.Columns>
  3.                 <c1:DataGridComboBoxColumn  DisplayMemberPath="Name"  SelectedValuePath="Id"
  4.                                                    SortMemberPath="CountryId" FilterMemberPath="CountryId"
  5.                                                   Header="Country" Binding="{Binding CountryId,Mode=TwoWay}"  Width="2*"/>
  6.             </c1:C1DataGrid.Columns>
  7.         </c1:C1DataGrid>
复制代码
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-8 10:17:00
5#
回复 4楼zxc9089的帖子

从示例和你4楼提供的代码对比来看,请问这列的ItemsSource是否设置。另外示例还在进入编辑状态的事件里,进行了ItemsSource的更新和同步。
你的代码里都有对应的代码么?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-4-8 14:15:00
6#
嗯了解了 是ItemsSource的原因。 mvvm绑定要用静态资源进行绑定。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-8 17:14:00
7#
回复 6楼zxc9089的帖子

好的。谢谢你的反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部