找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou8

银牌会员

67

主题

191

帖子

2047

积分

银牌会员

积分
2047

活字格认证微信认证勋章元老葡萄

CanYou8
银牌会员   /  发表于:2016-1-25 15:17  /   查看:4650  /  回复:1
如题,C1FlexGrid绑定下拉时,如何绑定?
如下代码,绑定失败,请帮忙看一下。
  1.         <c1:C1FlexGrid Name="_processFlowFlexGrid" Grid.Row="1" Grid.Column="0" Grid.RowSpan="2"
  2.                        AutoGenerateColumns="False" AllowAddNew="False" AllowSorting="False"
  3.                        IsReadOnly="False" HeadersVisibility="Column"
  4.                        Style="{StaticResource Green}" MinHeight="560" BorderThickness="1"
  5.                        SelectionMode="Cell" ChildItemsPath="Children" MaxRowHeight="20"
  6.                        ItemsSource="{Binding ProcessFlowList,IsAsync=True}"
  7.                        SelectedItem="{Binding CurrentProcessFlow,Mode=TwoWay}"
  8.                        PreviewKeyDown="_processFlowFlexGrid_PreviewKeyDown"
  9.                        PreviewKeyUp="_processFlowFlexGrid_PreviewKeyUp"
  10.                        CellEditEnded="_processFlowFlexGrid_CellEditEnded">
  11.             <c1:C1FlexGrid.Columns>
  12.                 <c1:Column Header="参数值" ColumnName="ParamValue" Width="*" >
  13.                     <c1:Column.CellTemplate>
  14.                         <DataTemplate>
  15.                             <StackPanel Name="StackPanel" VerticalAlignment="Center" Margin="10,0,0,0">
  16.                                 <TextBlock VerticalAlignment="Center" Cursor="Hand" Name="ParameterItem" Text="{Binding ParamValue}"/>
  17.                             </StackPanel>
  18.                         </DataTemplate>
  19.                     </c1:Column.CellTemplate>
  20.                     <c1:Column.CellEditingTemplate>
  21.                         <DataTemplate>
  22.                             <c1:C1ComboBox Style="{StaticResource Grid-AutoComboBox-List}" DisplayMemberPath="name" SelectedValuePath="value"
  23.                                            ItemsSource="{Binding Path=DataContext.ParamValueList,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=basicControls:BaseWindow}}"  
  24.                                            SelectedValue="{Binding ParamValue, Mode=TwoWay}"/>
  25.                         </DataTemplate>
  26.                     </c1:Column.CellEditingTemplate>
  27.                 </c1:Column>
  28.             </c1:C1FlexGrid.Columns>
  29.         </c1:C1FlexGrid>
复制代码


另外,如果采用CellEditingTemplate模式,必须点击后进入编辑模式时才能选择下拉内容;如何不用进入编辑模式,默认显示可选的下拉在列表上?如下图所示效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-1-25 17:35:00
沙发
回复 1楼CanYou8的帖子

你提到了两种下拉列表,一种是C1FlexGrid给EditTemplate设置为ComboBox控件,进入编辑状态后就会变成下拉列表。
这个的实现方式就是我们随机安装示例:
Documents\ComponentOne Samples\WPF\C1.WPF.FlexGrid\CS\ComboBox
绑定失败我测试了下没有重现。您可以看看示例,如果还有问题,需要给我们提供一个可以重现的Demo。

另一种就是内置的,使用内置的IValueConverter实现数据类型的转换。内置的ColumnValueConverter有三种:
ColumnValueConverter(IDictionary dictionary)
ColumnValueConverter(ICollection values, bool exclusive)
ColumnValueConverter(IEnumerable values, string valuePath, string displayMemberPath)

您提到的示例就是创建了一个新的ColumnValueConverter对象,传入参数是一个集合,然后就以列表的形式展示集合。
代码参考:
  1.    col = _flexEdit.Columns[&quot;First&quot;];
  2.             col.ValueConverter = new ColumnValueConverter(Customer.GetFirstNames(), false);
复制代码

这里面Customer.GetFirstNames()是一个字符串集合。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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