Одна View / ViewModel используется дважды в одном приложении, но привязана к разным данным - PullRequest
0 голосов
/ 13 июля 2011

Я создал представление и модель представления, которые я хотел бы использовать дважды (или более) в одном приложении. Однако я хотел бы связать его с двумя разными моделями.

<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, чтобы я мог определить, какие данные должно отображать это представление. Могу ли я использовать мультисвязь для этого?

1 Ответ

0 голосов
/ 14 июля 2011

Я понял это, привязав каждый из элементов управления представления к одному и тому же свойству в viewmodel и сделал свойство типа Object. Затем на основании представления ключа вернули правильный тип объекта. У меня работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...