Prism MVVM - wielokrotne użycie kodu View + ViewModel

0

Witam.

Mam pytanie odnośnie biblioteki Prism którą używam do tworzenia aplikacji desktopowej w technologii WPF.
Załóżmy, że chciałbym przedstawić szczegóły obiektu typu osoba dla pracownika oraz dla klienta.
Nie chciałbym odrębnie tworzyć View + ViewModel dla szczegółów pracownika i View + ViewModel dla szczegółów klienta.
Czy mogę użyć ten sam kod dla tych dwóch przypadków? Jeśli tak to w jaki sposób?

Będę wdzięczny za naprowadzenie na właściwe tory.

0

Możesz skorzystać z TemplateSelector.

public class UserTemplateSelector: DataTemplateSelector
{
    public DataTemplate EmployeeTemplate{ get; set; }

    public DataTemplate CustomerTemplate{ get; set; }

    public override DataTemplate SelectTemplate(object obj, DependencyObject container)
    {
        //... logika wyboru, walidacja, i np. zwracamy template dla klienta.
        return CustomerTemplate;
    }
}

Następnie w widoku, który wyświetla użytkowników:

<UserControl.Resources>
    <!--Customer-->
    <DataTemplate x:Key="customertemp">
        <TextBox Text="Customer"></TextBox>
    </DataTemplate>

    <!--Employee-->
    <DataTemplate x:Key="employeetemp">
       <TextBox Text="Employee"></TextBox>
    </DataTemplate>
    <!--TMP selector-->
    <tmpselectorsnamespace:UserTemplateSelector x:Key="UserSelector"
                                                CustomerTemplate="{StaticResource customertemp}"
                                                EmployeeTemplate="{StaticResource employeetemp}"/>
</UserControl.Resources>

<Grid>
    <ListBox ItemsSource="{Binding Users}" ItemTemplateSelector="{StaticResource UserSelector}"/>
</Grid>

1 użytkowników online, w tym zalogowanych: 0, gości: 1