2011-01-14 8 views
0

In einer MVVM-Anwendung sollte die Detailansicht für einen Mitarbeiter eine Liste aller Abteilungen enthalten, in denen die Abteilung, zu der der Mitarbeiter gehört, festgelegt oder geändert wird. Da der DataContext für die Mitarbeiteransicht ein EmployeeViewModel ist, gab ich diesem Ansichtsmodell das Wissen aller Abteilungen, um eine Arbeitsansicht zu erhalten (unter Verwendung der folgenden Bindung).XAML-Datenquelle für Auswahlliste

Ich vermute, dass ein besserer Weg, dies zu tun wäre, eine statische Ressource zu binden haben würde. Sind Sie einverstanden? Wie würdest du das machen?

Cheers,
Berryl

Strom (Usercontrol mit einem Datacontext von EmployeeViewModel) Bindung

<ComboBox 
    ItemsSource="{Binding Path=Departments}" 
    SelectedItem="{Binding Path=Department, Mode=TwoWay}" 
    IsSynchronizedWithCurrentItem="True" 
    ...> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Name}" /> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

Antwort

0

besser? Nicht wirklich. Denken Sie daran, dass das "Mitarbeitersichtmodell" den Mitarbeiter Ansicht modelliert, nicht den Mitarbeiter Datenmodell. Es ist angemessen, dass alles, was in der Ansicht angezeigt wird, vom Ansichtsmodell verfügbar gemacht wird.

Verwandte Themen