程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> wpf-WPF DataGrid如何綁定多個值的計算結果

wpf-WPF DataGrid如何綁定多個值的計算結果

編輯:編程解疑
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. 想在第三列綁定前兩列之和.
具體怎麼綁定,希望大神們給點具體的實現代碼.

最佳回答:


好吧,看來我這問題還是得自己來答了.
在這裡,就不貼轉換器的代碼了,那個比較簡單,網上一搜很多.
最主要的是像我這種初學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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved