Я пытаюсь получить данные класса, связанные с нажатой кнопкой мыши ImageButton; какой ImageButton находится в оболочке Scrapviewer, обернутой WrapPanel и заполненной множеством других кнопок ImageButton. Проблема заключается в том, что, хотя я могу видеть выбранный экземпляр ImageButton "((PlanetClass) (fe))" и иметь видимость базовых данных экземпляра класса "((PlanetClass) (fe)). Content", я не могу чтобы получить доступ к любым полевым данным класса. Пример ниже иллюстрирует мое намерение.
Правильно ли я подхожу к этой проблеме (WrapPanel (завернутый в ScrollViewer) -> ImageButton-> FrameworkElement -> Экземпляр кнопки -> Данные поля)? Если нет, как лучше всего получить доступ к экземпляру ImageButton и связанным с ним данным? Кто-нибудь может указать мне правильное направление?
// WPF EventHandler at the container level:
<ScrollViewer ButtonBase.Click="SolarSystem_Click">
// Handles the ImageButton mouseClick event within the ScrollViewer wrapping the WrapPanel.
private void SolarSystem_Click(Object sender, RoutedEventArgs e)
{
FrameworkElement fe = e.OriginalSource as FrameworkElement;
SelectedPlanet PlanetSelected = new SelectedPlanet(fe);
MessageBox.Show(PlanetSelected.PlanetName);
}
// Used to initiate instance of ImageButton to access field data.
public SelectedPlanet(FrameworkElement fe)
{
return ((PlanetClass)(fe));
}
// Class Data
public class PlanetClass
{
string planetName;
public PlanetClass(string planetName)
{
PlanetName = planetName;
}
public string PlanetName
{
set { planetName = value; }
get { return planetName; }
}
}