2015-03-27 8 views
0

Можно ли вызвать метод проверки на радиообъект методом textChanged для текстового поля? У меня есть группа переключателей, и когда один из них выбран, он вызывает метод radiobutton_Checked. Это вычисляет и сохраняет результат в переменной под названием angle_Offset.Обновление метода кнопки-переключателя от textchangedevent

У меня есть текстовое поле, текст которого привязан к переменной под названием 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 
    } 

Я пытаюсь выяснить способ вызова метода radiobutton_Checked из TextChangedEventHandler, так что расчет angle_Offest (найденный в методе, проверенном радио) с использованием переменной «Заголовок». Я не могу просто назвать это, потому что у них разные параметры.

+1

вы пробовали просто вызов функции из текста изменили функцию? radiobutton_Checked ((object) this.myradiobutton, e); –

+0

Просьба указать [хороший, _minimal_, _complete_ пример кода] (http://stackoverflow.com/help/mcve), который наглядно иллюстрирует ваш вопрос. Одна идиома, которую я нашел полезной для работы с радиокнопками, заключается в том, чтобы использовать «IValueConverter» для сопоставления состояния группы с некоторым значением свойства, но из вашего сообщения не совсем ясно, как вы используете радиогруппу или что хотите 'textChanged()' метод. Я предполагаю, что ваша проблема может быть решена без обработки событий «TextChanged» или «Checked», но без хорошего примера кода невозможно предоставить конкретные рекомендации. –

+0

Я представил полный код в соответствии с запросом. – pfinferno

ответ

1

Вы можете вызвать RadioButton Checked событие на TextChanged случае текстового поля

В случае вам

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); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^