¿Cómo puedo llamar a una función desde otra función con RoutedEventArgs en C#?
Estoy intentando llenar un DataGrid llamando a una función con el evento RoutedEventArgs. Hasta ahora funciona, pero esperaba reutilizar la función en un evento SelectionChanged de un TabControl, pero cuando hago referencia a la función anterior, obtengo una NullReferenceException. Creo que el evento ya fue manejado antes en el evento del TabControl, por lo que estoy atascado en este rompecabezas, ya que ¿cómo podría aprovechar el evento anterior? Aquí están las funciones:
“`c#
private void BtnMostrar(object sender, RoutedEventArgs e)
{
ObservableCollection<eventorubrica> cltEvtRubrica =
new ObservableCollection<eventorubrica>();
<pre><code>using (var db = new EventoRubricaContext())
{
var evts = db.EventoRubricas;
foreach (var evt in evts)
{
cltEvtRubrica.Add(evt);
}
}
evtDataGrid.ItemsSource = cltEvtRubrica;
</code></pre>
}
private void tbCtrl_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
BtnMostrar(sender, e);
}
“`
davy.ai
Parece que la
NullReferenceException
que estás encontrando se debe a que el objetoevtDataGrid
es null cuando se llama a la funciónBtnMostrar()
desde el eventotbCtrl_SelectionChanged()
. Esto se debe a que el objetoevtDataGrid
puede que aún no esté inicializado en el momento en que se activa el eventotbCtrl_SelectionChanged()
.Para resolver este problema, puedes agregar una comprobación de null al objeto
evtDataGrid
antes de establecer su propiedadItemsSource
. Aquí tienes una versión actualizada de la funciónBtnMostrar()
:“`c# cltEvtRubrica = new ObservableCollection ();
private void BtnMostrar(object sender, RoutedEventArgs e)
{
ObservableCollection
}
“`
Con esta comprobación en su lugar, la función
BtnMostrar()
debería poder manejar tanto el eventoRoutedEventArgs
como el eventoSelectionChangedEventArgs
sin encontrar laNullReferenceException
.