Сидеть Реп
У меня есть приложение WPF. В конструктор кода (C #) я прикрепляю кнопку-обработчик событий. Проблема в том, что он не привязан! Но если я прикреплю его нажатием кнопки пользовательского интерфейса, то кнопка работает нормально. Также, конечно, если я добавлю его в XAML кнопки, он тоже будет работать.
Итак, похоже, что проба присоединяет обработчик в конструкторе. Кажется, еще слишком рано.
Приложение Image
Это то, что я хочу, но не прикрепляю:
public MainWindow()
{
InitializeComponent();
//...
//
// TEST RADIO BUTTONS
//
// THIS HANDLER DOESN'T ATTACH!
ui_Test.Click += (object sender, RoutedEventArgs e) =>
{
bool localOnly = Convert.ToBoolean(ui_rdoLocal.IsChecked);
bool onlineOnly = Convert.ToBoolean(ui_rdoOnline.IsChecked);
bool both = Convert.ToBoolean(ui_rdoBoth.IsChecked);
string message = "Local: {1}{0}Online: {2}{0}Both: {3}".Put(nl, localOnly, onlineOnly, both);
MessageBox.Show(message);
};
//...
}
А вот код для второй кнопки тестирования, которая прикрепляет вышеуказанный код с помощью нажатия кнопки. Этот обработчик установлен в XAML. Затем обработчик работает, но я хочу подключить обработчик в C #, а не в XAML.
<Button Name="ui_Test2" Content="Attach Annonymous Handlers" Margin="30,10" Click="ui_Test2_Click"></Button>
И метод:
/// <summary>
/// Attaches control handlers. Will they attach now? YES!!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ui_Test2_Click(object sender, RoutedEventArgs e)
{
ui_Test.Click += (object sndr, RoutedEventArgs rea) =>
{
bool localOnly = Convert.ToBoolean(ui_rdoLocal.IsChecked);
bool onlineOnly = Convert.ToBoolean(ui_rdoOnline.IsChecked);
bool both = Convert.ToBoolean(ui_rdoBoth.IsChecked);
string message = "Local: {1}{0}Online: {2}{0}Both: {3}".Put(nl, localOnly, onlineOnly, both);
MessageBox.Show(message);
};
}
Спасибо заранее за любую помощь!
Gregg