предположим, у меня есть сетка данных, в которой есть 2 столбца и 1 расширитель в каждом столбце.
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Expander Style="{StaticResource PlusMinusExpanderStyle}"
ToolTip="Rule Details"
Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl},Mode=FindAncestor},Path=DataContext.IsRuleDetailsExpanderVisible, Converter={StaticResource BooleanToVisibilityConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
>
<Expander.IsExpanded>
<Binding RelativeSource="{RelativeSource AncestorType={x:Type DataGridRow}}"
Path="DetailsVisibility"
Mode="TwoWay">
<Binding.Converter>
<converters:BooleanToVisibilityDataGridRow FalseToVisibility="Collapsed" />
</Binding.Converter>
</Binding>
</Expander.IsExpanded>
</Expander>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Status">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Ellipse Grid.Column="1"
Width="15"
Height="15"
Fill="{Binding Status,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ColorToBrushConverter}}" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Add Rule">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Width="22" Height="22"
ToolTip="Add Rule"
BorderThickness="0"
Background="Transparent"
Style="{StaticResource TransparentStyle}"
IsEnabled="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl},Mode=FindAncestor},Path=DataContext.IsMonitorDataGridColumnEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl},Mode=FindAncestor},Path=DataContext.AddRuleCommand}"
CommandParameter="{Binding ElementName=MonitorDataGrid, Path=SelectedItem}">
<Image Source="/OBDApplication;component/Images/addRule1.png"
Width="17"
Height="17"
ToolTip="Add Rule" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
Теперь я должен контролировать видимость каждого расширителя.при нажатии кнопки «Добавить правило» появляется новое окно, в которое вводятся некоторые данные и добавляются данные в коллекцию.если в правиле присутствуют какие-либо данные, то только я должен показывать значок расширителя.
поэтому я связал логическое свойство для управления видимостью, и после добавления правила в коллекцию я делаю это логическое свойствокак правда.Но проблема в том, что расширитель виден для каждой строки, потому что логическое значение возвращает true, даже если в коллекции есть запись.
Так как же я могу контролировать видимость расширителя для каждой строки?