locked
Silverlight DataGrid RRS feed

  • 问题

  • 利用WCF将一个IList<Object>传到客户端,客户端绑定数据 this.myDataGrid.ItemsSource = e.Result;
    绑定后列的顺序如何改变?如何改变 DataGrid 的列名为 汉字呢?我的列的数量是动态的所以不能在前端指定绑定.

    2011年5月13日 9:58

答案

  • 如果无法确定的话,得想个办法确定,方法有很多,比如用代码读出时处理,因为datagrid也是一样可以通过c#动态生成的。
    2011年5月15日 7:04
    版主

全部回复

  • 据我所知WCF无法传输Object对象的。
    2011年5月14日 2:59
  • 这个功能很简单,首先你把你的list<object>转成正常的数据结构。然后再把datagrid的自动生成列属性设置为flash,然后再自定义新列,并指定好binding.以下例子可作参考:

         <DataGrid x:Name="dg_plans" AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" Grid.Row="1" ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}" CellStyle="{DynamicResource DataGridCellStyle1}">
          <DataGrid.Columns>
           <DataGridTextColumn Binding="{Binding p_等级名称, Mode=TwoWay}" Header="等级名称" Width="*" />
           <DataGridTextColumn Binding="{Binding p_消费基数, Mode=TwoWay, StringFormat=\{0:N\}}" Header="多少元积一分" Width="*" />
          </DataGrid.Columns>
         </DataGrid>


    2011年5月14日 20:55
    版主
  • 我这个object 是动态创建的实体..

    实体是通过读取数据库创建的!就是动态生成实体类!

    2011年5月15日 7:02
  • 我这个object 是动态创建的实体..

    实体是通过读取数据库创建的!就是动态生成实体类! 所以 你的例子中的 header="等级名称" 和  Header="多少元积一分"  我是从数据库读取的 所以 我也无法判断 有多少列 所以 只能 通过 后台绑定 上去

    2011年5月15日 7:03
  • 如果无法确定的话,得想个办法确定,方法有很多,比如用代码读出时处理,因为datagrid也是一样可以通过c#动态生成的。
    2011年5月15日 7:04
    版主
  • 谢谢,问题已经解决,可以在后台动态创建模版列,开始我没想到在后台动态创建模版列,只想到了 创建列...嘿嘿
    2011年5月16日 1:04