我有一个依赖项属性,当IsChecked事件为真时,我希望它填充一些单选按钮的标题。我已经找到了一种方法来完成这个任务,但是到目前为止,我所看到的都是动画例子。我知道我需要在这个EventTrigger定义中绑定,但是它会是什么样的呢?
<RadioButton Content="Header1"
Margin="4"
Foreground="{Binding RelativeSource={RelativeSource Self}, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}"/>在它的IsChecked属性为true时,我希望有一种方法来填充先前定义的依赖项属性的标题(在本例中为头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>发布于 2015-04-22 09:50:50
假设您使用的是MVVM方法,并且有一个视图模型支持您的视图:
你用触发器就快到了。您希望使用RadioControl的RadioControl事件,并将其与InvokeCommandAction组合
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding UpdateHeaderCommand}" CommandParameter="MyParam"/>
</i:EventTrigger>
</i:Interaction.Triggers>在本例中,只要选中无线电控件,就会调用视图模型中定义的ICommand UpdateHeaderCommand。我还向命令MyParam传递了一个参数,UpdateHeaderCommand可以使用该参数来识别选中哪个单选按钮。
如果您没有使用MVVM/viewmodel,那么另一种方法可能是在代码后面创建一个RadioButton_Checked事件处理程序来处理Checked事件,并将all单选按钮附加到该处理程序:
<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 ...
}您必须检查sender以确定选中了哪个单选按钮。
https://stackoverflow.com/questions/29791223
复制相似问题