Я строю свое первое приложение WP Silverlight 8.1 на C#, так что все еще новичок!LongListSelector C# - Как получить SelectedItem как строку из списка сгруппированных данных - Windows Phone Silverlight 8.1
У меня есть LongListSelector в моем приложении, которое позволяет пользователю выбирать комнату. Когда пользователь вступает в комнату, я хочу, чтобы имя комнаты (например, «N01», «N07», «N12» - см. Код ниже!), Чтобы быть сохраненным в виде строки.
У меня есть комнаты, хранящиеся в сгруппированном списке - список 'dataSource' привязан к LongListSelector (какой btw называется longListSelectorState).
Вот мой C# код списка:
namespace WPLongListSelectorDemo
{
public partial class MainPage : PhoneApplicationPage
{
List<RoomList> dataSource;
// Constructor
public MainPage()
{
InitializeList();
InitializeComponent();
List<RoomGroup<RoomList>> DataSource = RoomGroup<RoomList>.CreateGroups(dataSource,
System.Threading.Thread.CurrentThread.CurrentUICulture,
(RoomList s) => { return s.RoomName; }, true);
longListSelectorState.ItemsSource = DataSource;
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}
private void InitializeList()
{
dataSource = new List<RoomList>();
//North Rooms - Classrooms
dataSource.Add(new RoomList("N01", "North"));
dataSource.Add(new RoomList("N02", "North"));
dataSource.Add(new RoomList("N03", "North"));
dataSource.Add(new RoomList("N04", "North"));
dataSource.Add(new RoomList("N05", "North"));
dataSource.Add(new RoomList("N06", "North"));
dataSource.Add(new RoomList("N07", "North"));
dataSource.Add(new RoomList("N08", "North"));
dataSource.Add(new RoomList("N09", "North"));
dataSource.Add(new RoomList("N10", "North"));
dataSource.Add(new RoomList("N11", "North"));
dataSource.Add(new RoomList("N12", "North"));
dataSource.Add(new RoomList("N13", "North"));
dataSource.Add(new RoomList("N14", "North"));
dataSource.Add(new RoomList("N15", "North"));
dataSource.Add(new RoomList("N16", "North"));
dataSource.Add(new RoomList("N17", "North"));
dataSource.Add(new RoomList("N18", "North"));
dataSource.Add(new RoomList("N19", "North"));
dataSource.Add(new RoomList("N20", "North"));
dataSource.Add(new RoomList("N21", "North"));
Список на самом деле больше, чем это, но я сократить его немного здесь. В списке более 100 элементов.
Я попытался использовать следующий код, чтобы получить SelectedItem из списка, а затем отобразить его в окне сообщения.
private void longListSelectorState_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedRoom = longListSelectorState.SelectedItem;
MessageBox.Show(selectedRoom.ToString());
}
Но окно сообщения просто показывает 'WPLongListSelectorDemo.RoomList' как SelectedItem. WPLongListSelector - это пространство имен, а RoonList - это имя списка, поэтому я думаю, но это не то, что я хочу! Например, я хочу сказать «N01».
Как мне получить фактическую комнату из списка как SelectedItem в виде строки?
Спасибо!