我创建了一个视图和视图模型,我想在同一个应用程序中使用两次(或更多)。但是我希望将它绑定到两个不同的模型。
<TabItem Background="Transparent">
<TabItem.Header>
<TextBlock Text="Items" Foreground="LightSeaGreen" FontSize="14"/>
</TabItem.Header>
<AdornerDecorator>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="250" />
</Grid.ColumnDefinitions>
<local:ItemsView Grid.Row="0" Grid.Column="0" Margin="5" Height="Auto"/>
//This is the reused control
<local:NutritionLabelView Grid.Row="0" Grid.Column="1" Margin="5,15,5,5" Height="Auto" VerticalAlignment="Top" ViewKey="Key_ItemsView" />
</Grid>
</AdornerDecorator>
</TabItem>
<TabItem Background="Transparent">
<TabItem.Header>
<TextBlock Text="Meals" Foreground="LightSeaGreen" FontSize="14"/>
</TabItem.Header>
<AdornerDecorator>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="250" />
</Grid.ColumnDefinitions>
<local:MealsView Grid.Column="0" Margin="5" Height="Auto"/>
//This is it again
<local:NutritionLabelView Grid.Column="1" Margin="5,15,5,5" Height="Auto" VerticalAlignment="Top" ViewKey="Key_MealsView" />
</Grid>
</AdornerDecorator>
</TabItem>
重用的控件是<local:NutritionLabelView Grid.Column="1" Margin="5,15,5,5" Height="Auto" VerticalAlignment="Top" ViewKey="Key_MealsView" />
我给了一个ViewKey属性,所以我可以告诉这个视图应该显示哪些数据。我可以使用多重绑定吗?
答案 0 :(得分:0)
我通过将每个视图的控件绑定到viewmodel中的相同属性并将其作为Object类型的属性来解决这个问题。然后根据视图键返回正确类型的对象。适合我。