网中惆怅 2016-10-06 03:52 采纳率: 100%
浏览 2833
已采纳

WPF DataGrid如何绑定多个值的计算结果

在DataGrid绑定时,有一列的值是需要前面两列值的相减得出来的结果.而且绑定的实体集合中没有相应的属性.
初学wpf,没用到什么mvvm.就是简单的在后台给ItemsSource赋了一个集合对象.
示例代码:

//User类成员
public string  Uid{get;set;}
public decimal  CurrentMoney {get;set;}
public decimal  PayMoney {get;set;}

List<User>  list=getUsers();
dataGrid.ItemsSource=list;

在绑定时,前面两列分别绑定的是CurrentMoney和PayMoney. 想在第三列绑定前两列之和.
具体怎么绑定,希望大神们给点具体的实现代码.

  • 写回答

2条回答 默认 最新

  • 网中惆怅 2016-10-08 07:03
    关注

    好吧,看来我这问题还是得自己来答了.
    在这里,就不贴转换器的代码了,那个比较简单,网上一搜很多.
    最主要的是像我这种初学wpf的人来说,前端的一些语法和格式其实是个难题,这里就只贴XAML的代码了.

     <DataGridTextColumn Header="商品数量" Binding="{Binding Quantity}" Width="90" ElementStyle="{StaticResource dgCellCenter}"></DataGridTextColumn>
                    <DataGridTextColumn Header="调出数量" Binding="{Binding OutNumber}" Width="90" ElementStyle="{StaticResource dgCellCenter}"></DataGridTextColumn>
                    <DataGridTextColumn Header="库存数量" Width="90" ElementStyle="{StaticResource dgCellCenter}">
                        <DataGridTextColumn.Binding>
                            <MultiBinding StringFormat="{}{0}" Converter="{StaticResource multiProductStock}">
                                <Binding Path="Quantity"></Binding>
                                <Binding Path="OutNumber"></Binding>
                            </MultiBinding>
                        </DataGridTextColumn.Binding>
                    </DataGridTextColumn>
    

    怎么说呢,在网上看了很多关于多值绑定的资料和文档,都是一个TextBlock绑定前面几个TextBox的值.没查到一个在DataGrid中使用的,感觉应该差不多.但是没有具体的例子,就只能自己慢慢试了,结果还是出来了,至少后面如果有同样在学wpf的同学遇到这样的问题,可以参考下,也不致于花费太多时间.

    其实这样的问题,确实可以用其他几种办法实现,比如加属性, 也还可以将数据源做成动态的DataTable也可以. 但是有很多时候,一个业务复杂的类已经够大了,而只是刚刚某一个界面会用到这样的属性,再加个额外的属性一是感觉没必要,二是比较麻烦.既然有这么一个办法,还是要学会.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。