是否可以通过textChanged方法为文本框调用radiobutton检查方法?我有一组单选按钮,当选择一个单选按钮时,它会调用radiobutton_Checked方法。这会进行计算并将结果保存到名为angle_Offset的变量中。
我有一个文本框,其文本数据绑定到名为Heading的变量。这用于radiobutton_Checked方法中完成的计算。
现在,无论何时选择单选按钮,都会进行计算。如果我更改文本框中的文本,我必须单击另一个单选按钮让它更新angle_Offset计算,但是我试图这样做,以便在文本更改时完成计算而无需选择新的无线电按钮(使用当前的按钮)。
这是xaml:
<TextBox x:Name="Rotate" Text="{Binding ElementName=this, Path=Heading}" TextChanged="textChangedEventHandler" />
<RadioButton Content="0°" Tag="0" GroupName="display" Checked="radiobutton_Checked"/>
<RadioButton Content="90°" Tag="1" GroupName="display" Checked="radiobutton_Checked"/>
<RadioButton Content="180°" Tag="2" GroupName="display" Checked="radiobutton_Checked"/>
<RadioButton Content="270°" Tag="3" GroupName="display" Checked="radiobutton_Checked"/>
这里有代码:
private int Heading
{
get { return (int)GetValue(update_Heading); }
set { SetValue(update_Heading, value); }
}
public static readonly DependencyProperty update_Heading = DependencyProperty.Register("Heading", typeof(int), typeof(MainWindow), new PropertyMetadata(null));
public void radiobutton_Checked(object sender, RoutedEventArgs e)
{
var rb = (RadioButton)sender;
var tag = Convert.ToInt32(rb.Tag);
angle_Offset = (degrees_90 * tag) - Heading;
}
private void textChangedEventHandler(object sender, TextChangedEventArgs args)
{
//not sure how to call radiobutton_Checked from here
}
我试图找出一种从textChangedEventHandler调用radiobutton_Checked方法的方法,以便使用&#34; Heading&#34;计算angle_Offest(在无线电检查方法中找到)。变量已更新。由于它们有不同的参数,我无法调用它。
答案 0 :(得分:1)
您可以在文本框的TextChanged事件上调用单选按钮Checked事件
在你的情况下
public void radiobutton_Checked(object sender, EventArgs e)
{
var rb = (RadioButton)sender;
var tag = Convert.ToInt32(rb.Tag);
angle_Offset = (degrees_90 * tag) - Heading;
}
protected void textbox_TextChanged(object sender, EventArgs e)
{
RadioButton rb = .. // get the radiobutton checked
radiobutton_Checked(rb , null);
}