【发布时间】:2013-08-09 17:47:03
【问题描述】:
我是 XAML 和 Windows Phone 7 SDK 的新手。我正在开发一个 Windows Phone 7 应用程序,但我不知道如何从 ListBox 中检测所选项目。我正在使用全景模板,这是我的代码:
<controls:PanoramaItem Header="Basic">
<ListBox Margin="0,0,-12,0" Name="MyListBox" SelectionChanged="Elementary_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17">
<Image Height="100" Width="100" Source="{Binding LevelPassedImage}" Margin="12,0,9,0"/>
<StackPanel Width="311">
<TextBlock Name="lvlName" x:Uid="Elementary{Binding LevelId}" Text="{Binding LevelName}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" />
<TextBlock Text="{Binding LevelPassed}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PanoramaItem>
和C#代码:
MessageBox.Show(Elementary.SelectedItem.ToString()); //returns "LocalXmlParsing.XMLParser"
我正在使用 XMLParser,应用初始化代码:
var parser = LocalXmlParsing.XMLParser.Instance;
StreamResourceInfo strm = Application.GetResourceStream(new Uri("Levels/ElementaryLevels.xml", UriKind.Relative));
StreamReader reader = new StreamReader(strm.Stream);
string data = reader.ReadToEnd();
parser.DataToParse = data;
parser.ParseStateData();
MyListBox.ItemsSource = parser.LevelCollection;
当我尝试检测 SelectedItem 时,ListBox 会返回此字符串:“LocalXmlParsing.XMLParser”。
【问题讨论】:
-
ListBox 的 ItemsSource 是什么?您必须将其转换为对象的类型。例如,如果源是 List
,那么您必须将 SelectItem 强制转换为 myClass。 -
我已经编辑了代码,我做错了什么?
标签: c# listbox selecteditem