好吧,看来我这问题还是得自己来答了.
在这里,就不贴转换器的代码了,那个比较简单,网上一搜很多.
最主要的是像我这种初学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也可以. 但是有很多时候,一个业务复杂的类已经够大了,而只是刚刚某一个界面会用到这样的属性,再加个额外的属性一是感觉没必要,二是比较麻烦.既然有这么一个办法,还是要学会.