У меня есть пользовательский интерфейс с несколькими кнопками, которые меняются при клике.Чтобы не приходилось менять каждую кнопку с помощью собственной логики, я применил несколько IValueConverters и дал им имя кнопки в виде строки.
<ResourceDictionary>
<converters:ButtonVisibilityConverter x:Key="ButtonVisibilityConverter" />
...
</ResourceDictionary>
...
<Button x:Name="MyData" ...
FontSize="{Binding ActiveButton, Converter={StaticResource ButtonVisibilityConverter}, ConverterParameter=MyData}" />
ActiveButton - это строка, в которой хранится имя текущей в данный момент кнопки.Каждая кнопка получила такое уникальное имя (в данном случае MyData
).
Преобразователь сравнивает значения ActiveButton
и MyData
и возвращает соответствующие значения.
Что теперьЯ хочу, чтобы я мог использовать стили для кнопок, поэтому мне не нужно писать каждый конвертер значений для каждой кнопки, потому что они различаются только по идентификатору (например, MyData
, Settings
).
Я попробовал следующий подход:
<Style x:Key="ConvertersStyle" TargetType="Button">
<Setter Property="IsVisible"
Value="{Binding ActiveButton, Converter={StaticResource ButtonFontSizeConverter}, ConverterParameter=???}"/>
...
</Style>
...
<Button ... Style="{StaticResource ConvertersStyle}" />
Но я не нашел возможности заставить ConverterParameter
динамически получать кнопки x:Name
или другой идентификатор.
Есть ли способ получитьназвание кнопки или, например, дать стилю параметр?