Hallo Ihr lieben,
ich habe mal eine kleine Frage, das MainWindow ist auf das MainViewModel gebunden (Datacontext) in diesem, gibts eine ObservableCollection(of OutlookItemViewModel).
Ein Grid im MainWindow hat als DataContext das Property SelectedOutlookItemViewmodel, welches ja im MainViewmodel liegt
Im OutlookItemViewModel, gibt es ein Command welches an einen Button im MainWindow gebunden ist. Alles mit einer kleinen Ausnahme funktioniert so einwandfrei, ABER wenn kein OutlookViewModelItem ausgewählt ist, ist das Grid ja wieder an Nichts gebunden.
Das daraus resultierende Problem ist, das wenn ich kein Item angewählt habe, mir das Grid natürlichwerweise mit leeren Controls aufwartet (solls ja auch) aber der Button welcher im Grid liegt, somit auch keine Bindung zum Command hat, der Button wird mir also isEnabled=true angezeigt.
Wie könnte ich es bewerkstelligen, das der Button solange er das Command ja nicht finden kann, als IsEnabled=False angezeigt wird ? Wenn ich den zusätzlich zum Binding einfach auf IsEnabled=False setze, ändert sich dies auch nicht, selbst wenn dann ein Item angewählt und Ihm sein Commando somit verfügbar wird.
Ich hoffe ich hab mich hier klar genug ausgedrückt. Also im Prinzip: If Binding isnot vorhanden then bleib deaktiviert.
LG und Danke
Nachtrag:
Bisher hab ich als Lösung einen Style gefunden, ich lasse das Thema dennoch erstmal offen, falls jemand noch einen eleganteren Weg kennt
ich habe mal eine kleine Frage, das MainWindow ist auf das MainViewModel gebunden (Datacontext) in diesem, gibts eine ObservableCollection(of OutlookItemViewModel).
Ein Grid im MainWindow hat als DataContext das Property SelectedOutlookItemViewmodel, welches ja im MainViewmodel liegt
Im OutlookItemViewModel, gibt es ein Command welches an einen Button im MainWindow gebunden ist. Alles mit einer kleinen Ausnahme funktioniert so einwandfrei, ABER wenn kein OutlookViewModelItem ausgewählt ist, ist das Grid ja wieder an Nichts gebunden.
Das daraus resultierende Problem ist, das wenn ich kein Item angewählt habe, mir das Grid natürlichwerweise mit leeren Controls aufwartet (solls ja auch) aber der Button welcher im Grid liegt, somit auch keine Bindung zum Command hat, der Button wird mir also isEnabled=true angezeigt.
Wie könnte ich es bewerkstelligen, das der Button solange er das Command ja nicht finden kann, als IsEnabled=False angezeigt wird ? Wenn ich den zusätzlich zum Binding einfach auf IsEnabled=False setze, ändert sich dies auch nicht, selbst wenn dann ein Item angewählt und Ihm sein Commando somit verfügbar wird.
Ich hoffe ich hab mich hier klar genug ausgedrückt. Also im Prinzip: If Binding isnot vorhanden then bleib deaktiviert.
LG und Danke
Nachtrag:
Bisher hab ich als Lösung einen Style gefunden, ich lasse das Thema dennoch erstmal offen, falls jemand noch einen eleganteren Weg kennt
XML-Quellcode
- <Button Content="Generate Text"
- Grid.Row="2"
- Grid.ColumnSpan="2"
- Command="{Binding CreateTextCommand}">
- <Button.Style>
- <Style TargetType="Button">
- <Style.Triggers>
- <Trigger Property="Command" Value="{x:Null}">
- <Setter Property="IsEnabled" Value="False" />
- </Trigger>
- </Style.Triggers>
- </Style>
- </Button.Style>
- </Button>
If Energy = Low Then
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „asusdk“ ()