Я использую модель-вид-вид-модель. В настоящее время у меня есть класс с 3 частями данных: 2 целыми числами и перечислением.
Его конструктор выглядит так:
//C#
public Outcome(OutcomeEnum outcomeEnum, Int32 acutalOutcomeData, Int32 expectedOutcomeData)
{
m_outcomeEnum = outcomeEnum;
m_actualData = acutalOutcomeData;
m_expectedData = expectedOutcomeData;
}
У меня есть 2 ComboBox рядом друг с другом, которые я связал с одним списком объектов результатов (List<Outcome>
), которые я использую для "фактических" и "ожидаемых" целочисленных значений.
Этот раздел кода выглядит следующим образом: (SelectedItem и ItemsSource являются свойствами зависимостей в модели представления)
<ComboBox ItemsSource="{Binding Path=OutcomeList}" SelectedItem="{Binding SelectedExpectedOutcome, Mode=TwoWay}" x:Name="PART_cbExpectedOutcome" Grid.Column="1" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Label Content="{Binding Path=ExpectedOutcomeData, Converter={StaticResource OutcomeDataToStringConverter}, ConverterParameter=Expected }" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox ItemsSource="{Binding Path=OutcomeList}" SelectedItem="{Binding SelectedActualOutcome, Mode=TwoWay}" x:Name="PART_cbActualOutcome" Grid.Column="2" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Label Content="{Binding Path=ActualOutcomeData, Converter={StaticResource OutcomeDataToStringConverter}, ConverterParameter=Actual}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Моя проблема: Я хотел бы передать ссылку на объект Outcome в IValueConverter, который я использую для преобразования между ними, но это невозможно с использованием IConvertParameter, а скорее я будет вынужден использовать Multibinding для сообщения msdn здесь .
Я бы хотел упростить мой подход, так как создаю мультисвязь для чего-то относительно простого, так как это кажется излишним.
Я хотел бы сделать только одну вещь с объектом Outcome, которую я стремлюсь передать в IValueConverter, - определить тип перечисления OutcomeEnum, чтобы я мог обеспечить правильное форматирование ожидаемого или фактического значения данных.
Есть ли какой-нибудь более простой способ для меня, чтобы иметь возможность передавать объект Outcome в IValueConverter OutcomeDataToStringConverter
при сохранении двусторонней привязки с этим списком объектов Outcome? Я открыт для предложений.