找回密码
 立即注册

QQ登录

只需一步,快速开始

visualmaster

银牌会员

16

主题

64

帖子

3892

积分

银牌会员

积分
3892

活字格认证

visualmaster
银牌会员   /  发表于:2015-1-19 16:39  /   查看:8293  /  回复:5
如题
没找到可以重写的Template呢,还是自定义CellFactory 去替换?有例子没

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-19 18:13:00
沙发
回复 1楼visualmaster的帖子

不知道你的需求是什么,不过Column下也有CellTemplate,可以设置模板来展示单元格的内容。
如下的XAML代码创建了列,使用自定义模板来展示单元格。
  1. <c1:C1FlexGrid x:Name="_fgTemplated">
  2.   <c1:C1FlexGrid.Columns>

  3.     <!-- add a templated column -->
  4.     <!-- Binding used only for clipboard and export support -->
  5.     <c1:Column Binding="{Binding Name}" Header="Template" Width="200">

  6.       <!-- template for cells in display mode -->
  7.       <c1:Column.CellTemplate>
  8.         <DataTemplate>
  9.           <TextBlock Text="{Binding Name}" Foreground="Green" FontWeight="Bold" />
  10.         </DataTemplate>
  11.       </c1:Column.CellTemplate>

  12.       <!-- template for cells in edit mode -->
  13.       <c1:Column.CellEditingTemplate>
  14.         <DataTemplate>
  15.           <Grid>
  16.             <Grid.ColumnDefinitions>
  17.               <ColumnDefinition Width="Auto" />
  18.               <ColumnDefinition Width="*" />
  19.             </Grid.ColumnDefinitions>
  20.             <Image Source="edit_icon.png" Grid.Column="0" />
  21.             <TextBox Text="{Binding Name, Mode=TwoWay}" Grid.Column="1" />
  22.           </Grid>
  23.         </DataTemplate>
  24.       </c1:Column.CellEditingTemplate>
  25.     </c1:Column>
  26.   </c1:C1FlexGrid.Columns>
  27. </c1:C1FlexGrid>
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
visualmaster
银牌会员   /  发表于:2015-1-20 10:41:00
板凳
回复 2楼Alice的帖子

哦,是的,谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-20 11:00:00
地板
回复 3楼visualmaster的帖子

不用客气。
如果还有什么问题,请提出来。
如果没有问题,欢迎就本次服务评分。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
visualmaster
银牌会员   /  发表于:2015-1-20 11:46:00
5#
回复 4楼Alice的帖子




好吧,我不知道怎么给这个HeaderTemplate 绑定 DataContent 啊

我是把FlexGrid 作为了ListViewItem 的一个ItemTemplate 的内容,所以默认的DataContent 是ListViewItem 的实体

FlexGrid 的Columns 是在ListViewItem 的实体的 一个集合属性BindingColumns

现在想把列的集合的每一个项绑定到HeaderTemplate ,HeaderTemplate 不知道怎么绑

我是要把FlexGrid 的 ColumnHeader 都改成自定义的样式

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-20 12:10:00
6#
回复 5楼visualmaster的帖子

Header属性的binding它不是一个dependency property.
如果你想自定义或是bind它,可以使用CellFactory功能。
你可以设置一个TextBlock 绑定到类然后把它设置给Header的content。
举个例子:
  1. public partial class MainPage : UserControl
  2.     {
  3.         public MainPage()
  4.         {
  5.             InitializeComponent();
  6.             c1flexgrid1.CellFactory = new MyCellFactory();
  7.         }
  8.     }

  9. public class MyCellFactory:C1.Silverlight.FlexGrid.CellFactory
  10.     {
  11.         public override void CreateColumnHeaderContent(C1.Silverlight.FlexGrid.C1FlexGrid grid, Border bdr, C1.Silverlight.FlexGrid.CellRange range)
  12.         {         

  13.             base.CreateColumnHeaderContent(grid, bdr, range);
  14.             TextBlock tb = new TextBlock();
  15.             Binding Bd = new Binding();
  16.             Bd.Path = new PropertyPath(&quot;ColumnName&quot;);
  17.             tb.SetBinding(TextBlock.TextProperty, Bd);
  18.             bdr.Child = tb;
  19.         }
  20.     }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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