WPF 转换器无法访问基础 属性
WPF Converter can't access base property
我正在尝试实现类似此处 WPF DataGrid Grouping with sums and other fields 的内容,以从组中的项目中总结 'quantity' 属性。但它在 foreach 循环中抛出异常,它无法将 'items' 转换为我的类型('OrderItem' 我认为项目应该是...)
C#
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";
}
XAML
<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>
和资源
<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;
}
}
并判断这是否解决了您的问题。
我正在尝试实现类似此处 WPF DataGrid Grouping with sums and other fields 的内容,以从组中的项目中总结 'quantity' 属性。但它在 foreach 循环中抛出异常,它无法将 'items' 转换为我的类型('OrderItem' 我认为项目应该是...)
C#
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";
}
XAML
<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>
和资源
<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;
}
}
并判断这是否解决了您的问题。