2009-04-11 5 views
0

Lets sagen, ich habe zwei Container:Wie Inhalte in WPF verstecken und anzeigen?

<StackPanel> 
    <Label>First</Label> 
</StackPanel> 
<StackPanel> 
    <Label>Second</Label> 
</StackPanel> 

Und ich bin gebunden an dieses Objekt:

public class Model 
{ 
    public bool ShowFirst { get; set; } 
    public bool ShowSecond { get; set; } 
} 

Wie würde ich die Bindung der jeweiligen Platten ein- und ausblenden?

Antwort

8

Binden Sie die Sichtbarkeitseigenschaften. Sie müssen einen BooleanToVisibilityConverter verwenden.

<!-- in the Resources section --> 
<BooleanToVisibilityConverter x:Key="bvc" /> 

<!-- then --> 
<Label Visibility="{Binding ShowFirst, Converter={StaticResource bvc}}">First</Label> 

Dies setzt voraus, dass der DataContext das Modell ist; Andernfalls müssen Sie auch eine Quelle für die Bindung angeben.

Übrigens, das liegt wahrscheinlich daran, dass Sie den Modellcode abgekürzt haben, aber wenn Sie das Modell dynamisch ein- und ausblenden möchten, muss Ihr Modell INotifyPropertyChanged implementieren.

+1

Ich denke, Sie müssen wahrscheinlich auch den DataContext auf Ihr Modell setzen –

+1

Guter Punkt, Paul - Ich habe die Antwort aktualisiert, um dies zu erwähnen. Vielen Dank! – itowlson

Verwandte Themen