ここではWPF DataGrid Grouping with sums and other fieldsのようなものを作成しようとしていますが、グループ内のアイテムから数量プロパティを集計しています。しかし、それは私のタイプ(私は項目があるべきと思っているの 'のOrderItem' ...)
C#WPFコンバーターは基底プロパティーにアクセスできません
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is ReadOnlyObservableCollection<Object>)
{
var items = ((ReadOnlyObservableCollection<Object>) value);
Decimal total = 0;
foreach (OrderItem gi in items)
{
total += gi.quantity;
}
return total.ToString();
}
return "0";
}
に
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" Margin="5"/>
<TextBlock Text="Count" Margin="5" />
<TextBlock Text="{Binding Path=Items, Converter={StaticResource additionConverter}}" Margin="5"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
XAMLを 'アイテム' を変換傾けることをforeachループで例外がスローされます
とリソース
<local:AdditionConverter x:Key="additionConverter" />
'value'の基本要素へのアクセス方法を教えてください。私はブレークポイントを打ちました、それはそこにあります。 申し訳ありませんが、私は何かを台無しにした場合、私はWPFに新しいです。
foreach (OrderItem gi in items)
{
total += gi.quantity;
}
で:
foreach (CollectionViewGroup group in items)
{
foreach(OrderItem item in group.Items)
{
total += item.quantity;
}
}
をして、これはあなたの問題を解決するかどうか教えて
OrderItemでない場合に表示されるアイテムのタイプは何ですか? – AnjumSKhan
「MS.Internal.Data.CollectionViewGroupInternal」タイプを「Plan_Produkcji_Beta.OrderItem」に暗黙的に変換することはできません – kasperro
私の推測では、あなたのバインディングとは関係があります。私は、WPFコントロールのプロパティへのバインディングデータに直接アクセスするよりもコンバーターを使用してアイテムにxamlを提供することはできますか? –