WPF中的新手並且使用datagrid控件對項目進行分組,數據源自java消息Q,並且項目在到達時動態添加。WPF Datagrid分組 - 綁定轉換器不動態更新的項目
我正在使用GroupStyle顯示分組名稱,項目計數和讀取的自定義轉換器顯示已執行的數量。
我遇到的問題是,物品到達時物品計數會更新,但自定義轉換類不會被調用。
<DataGrid.GroupStyle>
...
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, Count: {1:#0}, Executed Qty: {2}">
<Binding Path="Name" />
<Binding Path="ItemCount" />
<Binding Path="Items" Converter="{StaticResource convertToExecutedQty}" />
</MultiBinding>
</TextBlock.Text>
.....
</DataGrid.GroupStyle>
而在轉換器類:
public class ConvertToExecutedQty : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && value is IEnumerable<Object>)
{
IEnumerable<TickOrderViewModel> orders = ((IEnumerable<object>) value).GetBaseElements<TickOrderViewModel>();
if (orders.Count() > 0)
{
var BuyQty = (from n
in orders
where n.side.ToUpperInvariant() == "BUY"
select n.executed_qty).Sum();
var SellQty = (from n
in orders
where n.side.ToUpperInvariant() == "SELL"
select n.executed_qty).Sum();
return BuyQty - SellQty;
}
}
return null;
}
在上述變換器中,當標籤的負載,「訂單」計數爲1時有一些被其他作爲它們加載後一個2項從MQ讀取。
例如:我有2行SELL爲1,賣爲BUY爲1 最初在加載時,集合只看到1行,執行的數量顯示爲-3。
當我切換標籤,然後訂單現在有2項以及Exe數量變爲-2
任何想法請正確的價值?
網格由GUI上的用戶分組,因此不確定某個屬性是否可用於獲取該特定組的總計數。在這種情況下,我仍然可以使用屬性。調試似乎打到所有組,但只顯示該集合中有一行而不是整個一堆,並添加一個新行時,這不會觸發。 – Kannan