我有一個ListBox
,其中顯示所有訂單頭寸。我需要顯示一個價格。我創建了一個ValueConverter
,它需要一個OrderPosition
對象並將我的價格返回爲double。 公式:金額* Product.Price(Amount
和Product
在OrderPosition
屬性)將當前項目傳遞給ValueConverter
我的XAML就不會顯示任何內容:
<ListBox Grid.Row="1" Grid.Column="0" Margin="3" ItemsSource="{Binding SelectedOrder.OrderPositions}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}x {1}">
<Binding Path="Amount" />
<Binding Path="Product.Label" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Text="{Binding /, Converter={StaticResource PositionPriceConverter}, StringFormat={}{0:c}}" Grid.Column="1"
TextAlignment="Right" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
這裏是我的轉換器:
public class PositionPriceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var position = (OrderPosition)value;
return position.Amount * position.Product.Price;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
你能告訴你的轉換器嗎? – sexta13
我已經添加了。我認爲這種投射是有效的,因爲我的應用程序不會拋出異常。 –
我想@dkozl是最好的答案:) – sexta13