マウスでクリックした ImageButton に関連付けられたクラス データを取得しようとしています。この ImageButton は、Scollviewer でラップされた WrapPanel 内にあり、他の多数の ImageButton で満たされています。問題は、「((PlanetClass)(fe))」が選択された ImageButton のインスタンスが表示され、クラス インスタンスの基になるデータ「((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; }
}
}