none
如何通过silverlight 4去新增一个动态生成的datagrid RRS feed

  • 问题

  • 如何通过silverlight 4去新增一个动态生成的datagrid,我需要一个datagrid,对应的列是根据后台数据动态生成,并且还要求记录中部分列值是要求是radiobutton对象,在点击radiobutton时需要触发事件将相应的值获取到,我应该如何是实现这样的页面?
    目前我已经尝试过datatemplate和XAML的方式,但是都没有完全达到我的要求。
    使用DataTemplate可以实现绑定radiobutton的事件触发,但是无法将多列的radiobutton绑定到不同的datasource。
    使用XAML可以实现多个数据源绑定到列上,但是无法将radiobutton的事件实现?

     

    2010年9月25日 5:50

答案

  • 如何通过silverlight 4去新增一个动态生成的datagrid,我需要一个datagrid,对应的列是根据后台数据动态生成,并且还要求记录中部分列值是要求是radiobutton对象,在点击radiobutton时需要触发事件将相应的值获取到,我应该如何是实现这样的页面?
    目前我已经尝试过datatemplate和XAML的方式,但是都没有完全达到我的要求。
    使用DataTemplate可以实现绑定radiobutton的事件触发,但是无法将多列的radiobutton绑定到不同的datasource。
    使用XAML可以实现多个数据源绑定到列上,但是无法将radiobutton的事件实现?

     


    我还是不太了解你的需求,你可以使用StaticResource binding来在一列获取多种数据源


    Mog Liang
    • 已标记为答案 johnhzjx 2011年7月28日 8:12
    2010年10月1日 7:28
  • 我也有同样的问题

    目前我有两个方案可行:

    首先datagrid里动态添加列,为列动态绑定是没有问题的

    silverlight里主要是处理数据,好像没有找到动态添加datagrid里的行或行里的控件。只要绑定,动态添加绑定对应的对象都能出来,

    但实际的项目中对象(类的定义)是动态的,就把问题变为:如何动态添加类(class)的属性()。

    所以我们要用反射技术来动态添加类的属性。再动态添加dataGrid的列,动态绑定,动态添加这个类的实例,就可以实现了,具体我还没有实现,只是有这个想

    第二个方案就是楼上讲到,用dataTable来做数据源,

    因为(datagrid里动态添加列,为列动态绑定是没有问题的)

     

    • 已标记为答案 johnhzjx 2011年7月28日 8:12
    2010年11月18日 2:55

全部回复

  • 有部分同样的问题,主要是列名是动态生成的,还有多条数据要展现。楼主的意思是可以解决动态生成列名?能把你的方法共享下吗? 谢谢先!

    2010年9月28日 8:30
  • 还需要把多条信息绑定到datagrid上!
    2010年9月28日 8:31
  • 还需要把多条信息绑定到datagrid上; 以前用过DataTable,这个东西就可以动态生成列,datagrid也可以,但datatable还可以定义行,把每条信息先赋给行,再把行添加到DataTable,  在silverlight中的datagrid我没发现可以定义行,更没发现datagrid有添加行的方法,所以,是不是楼主有什么方法可以实现动态声称列的同时,也可以把多条信息绑定到datagrid上那?
    2010年9月28日 8:38
  • 如果你乐意,可以采用TFSoft个人精心研制的T4DataTable,实现你的愿望!

    T4Data系列包括:

    T4DBConnection

    T4DBCommand(T4DBCommandASync)

    T4DBCommandEx(T4DBCommandSync)

    T4DBParameter

    T4DBParameterCollection

    T4DataColumn

    T4DataColumnCollection

    T4DataRow

    T4DataRowCollection

    T4DataTable

    T4DataHelper

    完全与ado.net的DataTable解决方案对应,只不过由于SL仅支持异步,所以提供异步方式,同时也通过xmlhttp提供同步方式。当然,你不需要去处理这些细节,所有细节已经封装,你就尽管和ado.net 的DataTable解决方案一样用就可以了。

    T4Data系列实现了数据库访问后台0代码,前后台0实体定义,无需任何转换直接支持SL的双向绑定(含DataGrid),支持Linq, 大数据量访问时速度快于WCF。

    2010年9月29日 13:08
  • 如何通过silverlight 4去新增一个动态生成的datagrid,我需要一个datagrid,对应的列是根据后台数据动态生成,并且还要求记录中部分列值是要求是radiobutton对象,在点击radiobutton时需要触发事件将相应的值获取到,我应该如何是实现这样的页面?
    目前我已经尝试过datatemplate和XAML的方式,但是都没有完全达到我的要求。
    使用DataTemplate可以实现绑定radiobutton的事件触发,但是无法将多列的radiobutton绑定到不同的datasource。
    使用XAML可以实现多个数据源绑定到列上,但是无法将radiobutton的事件实现?

     


    我还是不太了解你的需求,你可以使用StaticResource binding来在一列获取多种数据源


    Mog Liang
    • 已标记为答案 johnhzjx 2011年7月28日 8:12
    2010年10月1日 7:28
  • 用c#来生成datagrid。相当自由你可以试试。动态生成比较容易。
    [url=http://t.sina.com.cn/1356011082?s=6uyXnP][img]http://service.t.sina.com.cn/widget/qmd/1356011082/e5c30ddc/4.png[/img][/url]
    2010年10月4日 7:41
    版主
  • 我也有同样的问题

    目前我有两个方案可行:

    首先datagrid里动态添加列,为列动态绑定是没有问题的

    silverlight里主要是处理数据,好像没有找到动态添加datagrid里的行或行里的控件。只要绑定,动态添加绑定对应的对象都能出来,

    但实际的项目中对象(类的定义)是动态的,就把问题变为:如何动态添加类(class)的属性()。

    所以我们要用反射技术来动态添加类的属性。再动态添加dataGrid的列,动态绑定,动态添加这个类的实例,就可以实现了,具体我还没有实现,只是有这个想

    第二个方案就是楼上讲到,用dataTable来做数据源,

    因为(datagrid里动态添加列,为列动态绑定是没有问题的)

     

    • 已标记为答案 johnhzjx 2011年7月28日 8:12
    2010年11月18日 2:55
  • 如果采用T4Data系列解决方案,1)困惑你的动态DataGrid问题可以圆满解决。2)而且不需要你在服务器端书写任何实体以及代码;3)T4Data系列也不需要你进行系列化;4)T4Data系列也不需要你学习任何新的知识,只要你用过ado.net.

    T4Data系列解决你们这个动态Grid那就是小菜一叠,真不知道这么简单的问题,为什么被你们搞成那么复杂!!!!。It is just peice of cake. 

     

    2010年11月24日 12:49
  • 提醒你们:

    1)不要试图用反射来生成动态的属性,这种方式不可取,数据量大的时候,速度超慢。

    2)如果你们坚持不用T4Data来解决,可以使用SL4支持索引属性这个特点来变通成动态属性。

    这是我这个老资格程序员(25年编程经历)对你们的忠告。

    2010年11月24日 12:57