В этом примере у меня есть два элемента управления, но в реальном приложении у меня гораздо больше, в зависимости от значения свойства «Содержимое метки в сетке» (например), некоторые другие метки, текстовые поля, текстовые блоки и кнопки будут видны или свернуты. в сетке два (например).
Но чтобы упростить мою проблему, у меня будет упрощенный пример...
<Grid Name="gridOne">
<Label Content="{Binding Collection.Name}" Name="lblCaption"/>
</Grid>
<Grid Name="gridTwo">
<Label Content="My Label" Visibility="Collapsed">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=lblCaption, Path=Content}" Value="Employers">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
<TextBox Text="{Binding EmployerName}" Visibility="Collapsed">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=lblCaption, Path=Content}" Value="Employers">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
Я знаю, что это тоже не сработает, если я установлю свойство Visibility как Collapsed по умолчанию в элементе управления, но у меня много коллекций, и я не думаю, что наличие одного DataTrigger для каждой коллекции — хороший способ добиться этого. В любом случае, одна проблема возникает при связывании элементов управления в разных сетках, а другая — при правильной обработке свойства Visibility.
Заранее спасибо!