为样式应用的ValueConverter设置动态ValueConverter-Parameter

时间:2019-05-15 09:03:32

标签: c# xamarin.forms binding ivalueconverter

我的ui带有多个在单击事件时更改的按钮。为了不必使用自己的逻辑来更改每个按钮,我应用了多个IValueConverters并将按钮的名称指定为字符串。

<ResourceDictionary>
    <converters:ButtonVisibilityConverter x:Key="ButtonVisibilityConverter" />
    ...
</ResourceDictionary>
...

<Button x:Name="MyData" ... 
  FontSize="{Binding ActiveButton, Converter={StaticResource ButtonVisibilityConverter}, ConverterParameter=MyData}" />

ActiveButton是一个字符串,保留当前焦点按钮的名称。每个按钮都有一个唯一的名称(在本例中为MyData)。

转换器将ActiveButtonMyData的值进行比较,并返回相应的值。

现在我想要的是我可以为按钮使用样式,而不必为每个按钮编写每个值转换器,因为它们仅在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或另一个标识符。

是否有一种获取按钮名称的方法,例如给样式一个参数?

0 个答案:

没有答案