我的ui带有多个在单击事件时更改的按钮。为了不必使用自己的逻辑来更改每个按钮,我应用了多个IValueConverters并将按钮的名称指定为字符串。
<ResourceDictionary>
<converters:ButtonVisibilityConverter x:Key="ButtonVisibilityConverter" />
...
</ResourceDictionary>
...
<Button x:Name="MyData" ...
FontSize="{Binding ActiveButton, Converter={StaticResource ButtonVisibilityConverter}, ConverterParameter=MyData}" />
ActiveButton是一个字符串,保留当前焦点按钮的名称。每个按钮都有一个唯一的名称(在本例中为MyData
)。
转换器将ActiveButton
和MyData
的值进行比较,并返回相应的值。
现在我想要的是我可以为按钮使用样式,而不必为每个按钮编写每个值转换器,因为它们仅在ID上有所不同(例如MyData
,{{1} }。
我尝试了以下方法:
Settings
但是我发现没有选择使<Style x:Key="ConvertersStyle" TargetType="Button">
<Setter Property="IsVisible"
Value="{Binding ActiveButton, Converter={StaticResource ButtonFontSizeConverter}, ConverterParameter=???}"/>
...
</Style>
...
<Button ... Style="{StaticResource ConvertersStyle}" />
动态获得按钮ConverterParameter
或另一个标识符。
是否有一种获取按钮名称的方法,例如给样式一个参数?