Ich habe eine ComboBox
, die ich an eine ObservableCollection<RadioButton>
binden möchte. Allerdings möchte ich die ToolTip
Eigenschaft in der ComboBox
und nicht tatsächlich RadioButtons
auflisten.Bind ComboBox Elemente zu Eigentum der Radiobutton-Liste wpf
Beispiel:
Wenn ich 3 RadioButtons
mit ToolTips
1, 2 und 3. ich die ComboBox
wünschen 3 Schnur Gegenstände enthalten, 1, 2 und 3.
Code:
Ausblick:
<ComboBox x:Name="LandmarkIdComboBox" Grid.Column="1" DisplayMemberPath="ToolTip" ItemsSource="{Binding Landmarks, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedLandmark, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" HorizontalAlignment="Stretch"
VerticalAlignment="Center" VerticalContentAlignment="Center"/>
Ansichtsmodell:
private ObservableCollection<RadioButton> m_landmarks = new ObservableCollection<RadioButton>();
private RadioButton m_selectedLandmark;
public ObservableCollection<RadioButton> Landmarks
{
get => m_landmarks;
set
{
m_landmarks = value;
OnPropertyChanged();
}
}
public RadioButton SelectedLandmark
{
get => m_selectedLandmark;
set
{
m_selectedLandmark = value;
OnPropertyChanged();
}
}
den obigen Code verwenden kann ich die erwähnten 1,2 und 3 Artikel sehen, aber ich kann sie nicht auswählen kann. Ich nehme an, da es sich nicht um normale Artikel handelt, sondern um RadioButtons
, wenn Sie also auf sie klicken, werden sie aktiviert/nicht geprüft und nicht ausgewählt.
Ich könnte eine zusätzliche Strruct/Class
verwenden, um zu erreichen, was ich brauche, aber natürlich bevorzuge ich es nicht, wenn es einen anderen Weg gibt.
Also, gibt es einen anderen Weg?
Entfernen Sie das 'MVVM'-Tag, da ViewModel die UI-Elemente NICHT kennen sollte. Und stattdessen, wenn Sie Tooltip sehen möchten, dann erstellen Sie eine Liste von Strings und füllen Sie sie aus den 'RadioButtons'. – XAMlMAX