如何将父控件标记值传递给 ParameterConverter [重复]

Posted

技术标签:

【中文标题】如何将父控件标记值传递给 ParameterConverter [重复]【英文标题】:How Do I pass the parent control Tag value to the ParameterConverter [duplicate] 【发布时间】:2021-10-19 19:18:12 【问题描述】:

像下面的 xaml 示例一样,将静态值传递给 ConverterParameter 似乎很常见。

有没有办法将父控件的Tag属性传递给它?

<StackPanel Margin="StaticResource XSmallTopMargin" Tag="abc">
    <RadioButton GroupName="AppTheme" dt:DesignTime.Content="Light"
        Checked="ThemeChanged_CheckedAsync" 
        IsChecked="x:Bind ElementTheme, Converter=StaticResource EnumToBooleanConverter, ConverterParameter=Light, Mode=OneWay">
    </RadioButton>
</StackPanel>

【问题讨论】:

【参考方案1】:

你不能。至少我不知道。它需要您绑定它,并且无法将任何东西绑定到 ConverterParameter。 x:StaticStaticResource 是将某些东西传递给 ConverterParameter 的好方法。但是Binding 不行

但是你可以做的也是让你的转换器也支持IMultiValueConverter,然后在MultiBinding中传递父标签。

我可能要宰了你的绑定,但大致是这样的。

<RadioButton GroupName="AppTheme" dt:DesignTime.Content="Light"
    Checked="ThemeChanged_CheckedAsync" >
    <RadioButton.IsChecked>
        <MultiBinding  Converter="StaticResource EnumToBooleanConverter">
            <Binding Source="x:Bind ElementTheme"/>
            <Binding RelativeSource="RelativeSource Self" Path="Tag"/>
        </MultiBinding>           
    </RadioButton.IsChecked>
</RadioButton>

【讨论】:

以上是关于如何将父控件标记值传递给 ParameterConverter [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用当前的 Form API 将父组件的 FormGroup 传递给其子组件

如何通过 OracleCommand 使用 OracleTransaction 将父表的 id 传递给子表

React Native 将父方法传递给子组件

将输入标记的值传递给搜索按钮标记 - ReactJS

如何将选定的最大和最小价格值传递给 html 中选择标记内的 java 脚本函数?

如何从winform中将值传递给用户控件?