我有一个依赖属性,当IsChecked事件为真时,我希望它填充一些单选按钮的标题。我已经搜索了一种方法来实现这一点,但我迄今为止看到的只是动画示例。我理解我需要在EventTrigger定义中绑定,但它看起来如何?
<RadioButton Content="Header1"
Margin="4"
Foreground="{Binding RelativeSource={RelativeSource Self}, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}"/>
On It的IsChecked属性为true,我想用一种方法用它的标题填充我之前定义的依赖属性(在本例中为Header 1)
public string HeaderSelected
{
get { return (string)GetValue(HeaderSelectedProperty); }
set { SetValue(HeaderSelectedProperty, value); }
}
// Using a DependencyProperty as the backing store for HeaderSelected. This enables animation, styling, binding, etc...
public static readonly DependencyProperty HeaderSelectedProperty =
DependencyProperty.Register("HeaderSelected", typeof(string), typeof(HeaderTestClass), new PropertyMetadata(string.Empty));
我想我会尝试这样的事情:
<i:Interaction.Triggers>
<i:EventTrigger EventName="IsChecked">
<ei:ChangePropertyAction
TargetObject="{Binding}"
PropertyName="HeaderSelected"
Value="Header1" />
</i:EventTrigger >
</i:Interaction.Triggers>
答案 0 :(得分:1)
假设您正在使用MVVM方法,并且您有一个视图模型支持您的视图:
你几乎在使用触发器。您想要使用RadioControl的$('#statistik').dataTable({
"destroy": true,
"ajax": include
});
事件,并将其与Checked
结合使用:
InvokeCommandAction
在此示例中,只要选中无线电控件,就会调用viewmodel中定义的ICommand <i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding UpdateHeaderCommand}" CommandParameter="MyParam"/>
</i:EventTrigger>
</i:Interaction.Triggers>
。我还将一个参数传递给命令UpdateHeaderCommand
,MyParam
可以使用该参数来识别选中的单选按钮。
如果你没有使用MVVM / viewmodel,那么另一种方法可能是在你的代码中创建一个UpdateHeaderCommand
事件处理程序来处理RadioButton_Checked
事件,并且 all < / strong>您的单选按钮附加到该处理程序:
Checked
和
<RadioButton Name="RadioButton1" GroupName="Group1" Checked="RadioButton_Checked"/>
<RadioButton Name="RadioButton2" GroupName="Group1" Checked="RadioButton_Checked"/>
您必须检查private void RadioButton_Checked(object sender, System.Windows.RoutedEventArgs e)
{
// Update your header ...
}
以确定选中了哪个单选按钮。