我有一个使用MEF创建的对话框,它在View模型中有一个名为'Container'的公开成员,它是对CompositionContainer的引用。在该对话框中是一个下拉组合框,其中包含一系列客户。我想从共享数据模型创建的列表中选择一个客户。我的对话框如下所示:
<Window x:Class="MyNamespace.MyDialog"
xmlns:common="http://schemas.teraque.com/common"
ShowInTaskbar="False"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid Margin="4">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<common:ProductComboBox Grid.Row="1" Grid.Column="1"/>
<TextBlock Text="Product" Grid.Row="0" Grid.Column="0"/>
<common:CustomerComboBox Grid.Row="1" Grid.Column="1"/>
<TextBlock Text="Customer" Grid.Row="1" Grid.Column="0"/>
</Grid>
</Window>
那么我们如何将DI组合容器传递给产品或客户组合框,以便他们可以在共享服务中查询产品和客户数据?我玩弄了从父视图模型引用容器的想法:
<common:CustomerComboBox Container="{Binding Container}"
Grid.Row="1" Grid.Column="1"/>
有更好的方法吗?