У меня есть фильтр Стиль значка, реализованный для Target Type = DataGridColumnHeader, и я привязал стиль в DataGrid.Как обновить свойство bool на основе видимости кнопок в DataGridColumnHeader Style
Мое требование для обновления ViewModel bool Property
HasFilterIcon
к true
если один из button
в DataGridColumnHeader
получает visibility visible
иначе false
Мой XAML Стиль
<Style TargetType="{x:Type DataGridColumnHeader}" x:Key="DataGridElementStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Button Name="autofilter" Command="{Binding Path=DataContext.FilterPopUpCommand,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}}">
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource MultiValueConverterKey}">
<Binding RelativeSource="{ RelativeSource Mode=FindAncestor,
AncestorType={x:Type cust:DataGrid}}" />
<Binding Path="Column"
RelativeSource="{RelativeSource Mode=TemplatedParent}" />
</MultiBinding>
</Button.CommandParameter>
</Button>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"></Condition>
</MultiTrigger.Conditions>
<Setter TargetName="autofilter" Property="Visibility" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Мой XAML DataGrid является
<DataGrid Name="PassengerGrid" AutoGenerateColumns="False" ColumnHeaderStyle="{StaticResource FilterDataGridColumnHeader}">
<DataGridTextColumn Binding="{Binding CustomVisitTime}" Header="Visit Time" CanUserSort="true" Width="90" ElementStyle="{StaticResource DataGridElementStyle}""/>
<DataGridTextColumn Binding="{Binding PassengerName}" Header="Passenger Name" CanUserSort="true" Width="90" ElementStyle="{StaticResource DataGridElementStyle}""/>
</DataGrid>
Имущество, которое мне нужно обновить это
private bool _hasFilterIcon = false;
public bool HasFilterIcon
{
get { return _hasFilterIcon; }
set
{
_hasFilterIcon = value;
OnPropertyChanged();
}
}
Если какой-либо из Баттона Column Header получает Visibility Visible
, то мне нужно изменить значение свойства HasFilterIcon
в true
иначе false
. Пожалуйста, помогите мне.
Примечание: Стиль имеет N количество кнопок, из N, я должен проверить, есть ли одна из кнопки видно ...
Как узнать, доступна ли какая-либо кнопка или нет? Конверсия не является проблемой. Пожалуйста, помогите мне ... –
Стиль имеет N количество кнопок, из N я должен проверить, есть ли одна из кнопок Visible ... –
@ B.Balamanigandan режим использования OneWayToSource. то, если какая-либо кнопка получит visibilty = visible, ваш HasFilterIcon установит значение true. –