我创建了一个视图和视图模型,希望在同一应用程序中使用两次(或更多)。然而,我希望将它绑定到两个不同的模型上。
<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>被重用的控件是我为其赋予了ViewKey属性的<local:NutritionLabelView Grid.Column="1" Margin="5,15,5,5" Height="Auto" VerticalAlignment="Top" ViewKey="Key_MealsView" />,这样我就可以告诉这个视图应该显示哪些数据。我可以为此使用多绑定吗?
发布于 2011-07-14 06:34:09
我通过将视图的每个控件绑定到视图模型中的相同属性来解决这一问题,并将属性类型设置为Object。然后根据视图关键字返回正确的对象类型。这对我很有效。
https://stackoverflow.com/questions/6680543
复制相似问题