Moin, ich habe eine Combo und möchte für ein Projekt die Visibility von Datumsfeldern basierend auf der Auswahl des ComboItems einstellen, an sich keine große Sache.
Ich verwende jedoch MaterialDesignThemes von James Willock.
Das ganze sähe so aus:
<DatePicker VerticalContentAlignment="Center"
HorizontalContentAlignment="Right"
materialDesign:HintAssist.Hint="Von:"
FontSize="18"
x:Name="D_BelegVon"
Foreground="Black"
Width="220"
SelectedDateChanged="d_Von_SelectedDateChanged"
Visibility="{Binding IsSelected,ElementName=Combo_Beleg}">
<DatePicker.Style>
<Style Resources="{StaticResource MaterialDesignFloatingHintDatePicker}">
<Setter Property="DatePicker.Visibility"
Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Combo_Datumsauswahl, Path=SelectedItem.Tag}"
Value="Show">
<Setter Property="DatePicker.Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DatePicker.Style>
</DatePicker>
Die Stelle mit :
<Style Resources="{StaticResource MaterialDesignFloatingHintDatePicker}">
funktioniert nicht - es soll
die zugrunde liegende Idee kommuniziert werden.
Ich würde ansonsten selbiges im CodeBehind realisieren, wüsste jedoch ob das mit MaterialDesign und XAMLgeht.
Danke
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
2 Fehler die ich auf Anhieb sehe:
Du darfst die Visibility nicht im DatePicker setzen, wenn du sie über den Style setzen möchtest (Zeile 9)
In Zeile 11 muss statt Resources=""
ein BasedOn=""
genutzt werden.
Bitte keine Full Quotes
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Zum zweiten Punkt, folgendes funktioniert ohne Probleme:
<DatePicker>
<DatePicker.Style>
<Style TargetType="DatePicker" BasedOn="{StaticResource MD_DatePickerStyle}">
<Setter Property="Foreground" Value="HotPink" />
</Style>
</DatePicker.Style>
</DatePicker>
Könnte sein, dass das fehlende TargetType das Problem war.
Generell kannst du auch ins Output gucken, falls es Probleme mit dem Binding gibt.
Schau ich mal
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein