2009-04-11 2 views
0

Допустим, у меня есть два контейнера:Как скрыть и показать содержимое в wpf?

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

И я привязан к этому объекту:

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

Как бы установить привязку, чтобы показать и скрыть соответствующие панели?

ответ

8

Связать свойства видимости. Вам нужно будет использовать BooleanToVisibilityConverter.

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

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

Это предполагает, что DataContext является моделью; иначе вам также нужно указать источник в Binding.

Кстати, это, вероятно, просто потому, что вы сократили код модели, но если вы хотите показывать и скрывать динамически, вашей модели необходимо будет реализовать INotifyPropertyChanged.

+1

Я думаю, вам, вероятно, необходимо установить DataContext для вашей модели, а также –

+1

Хорошая точка, Пол. Я обновил ответ, чтобы упомянуть об этом. Благодаря! – itowlson

Смежные вопросы