我正在使用模型-视图-视图模型我目前有一个包含 3 条数据的类:2 个整数和一个枚举。
它的构造函数如下所示:
//C#
public Outcome(OutcomeEnum outcomeEnum, Int32 acutalOutcomeData, Int32 expectedOutcomeData)
{
m_outcomeEnum = outcomeEnum;
m_actualData = acutalOutcomeData;
m_expectedData = expectedOutcomeData;
}
我有 2 个彼此相邻的组合框,我已绑定到一个结果对象列表 ( List<Outcome>
),我将其用于“实际”和“预期”整数值。
这部分代码如下所示:( SelectedItem 和 ItemsSource 是 viewmodel 中的依赖属性)
<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 而是我将被迫使用每个msdn的 Multibinding在这里发帖。
我想将我的方法简化为为相对简单的东西创建多重绑定,因为这似乎有点矫枉过正。
我只想对我试图传递给 IValueConverter 的 Outcome 对象做一件事,即确定 OutcomeEnum 的枚举类型,以便我可以提供预期或实际数据值的正确格式。
有没有更简单的方法可以将 Outcome 对象传递到 IValueConverter 中OutcomeDataToStringConverter
,同时保持与这个 Outcome 对象列表的双向绑定?我愿意接受建议。