У меня есть ListBox в пользовательском элементе управления WPF, который определен как
<ListBox Grid.Row="1" ScrollViewer.CanContentScroll="False" Background="#00000000" BorderThickness="0" ItemsSource="{Binding BuyItNowOptions}"
ItemTemplate="{DynamicResource BuyItNowDataTemplate}" IsSynchronizedWithCurrentItem="True"
Style="{DynamicResource InheritEmptyListStyle}" SelectedItem="{Binding SelectedResearch}" ItemContainerStyle="{DynamicResource ListBoxItemStyle}"/>
BuyItNowOptions - это открытое свойство ViewModel, имеющее тип ObservableCollection
В BuyItNowDataTemplate у меня есть метка, которая должна иметь некоторую логику перед отображением цены.
<Label Padding="1" HorizontalContentAlignment="Stretch" Grid.Column="2" Grid.Row="2" Margin="1">
<TextBlock Text="{Binding ExchangePrice, StringFormat=C}"
Visibility="{Binding ReturnRequired, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Label>
Привязка здесь указывает, что она будет использовать свойство ExchangePrice экземпляра AutoResearchProxy, на котором оно установлено, например BuyItNowOptions [CurrentIndex] .ExchangePrice.
Я хотел бы знать, можно ли создать привязку таким образом, чтобы она ссылалась на весь экземпляр AutoResearchProxy, чтобы я мог передать его конвертеру и манипулировать несколькими свойствами AutoResearchProxy и вернуть вычисленную цену
Я бы предположил, что мой конвертер будет выглядеть следующим образом.
public class PriceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is AutoResearchProxy)
{
var research = value as AutoResearchProxy;
//Some logic to figure out actual price
}
else
return String.Empty;
}
Надеюсь, это имеет смысл.