Windows Phone ListPicker выбрал элемент без привязки данных
У меня есть listPicker в приложении для Windows Phone 8, и мне интересно, что я делаю неправильно, чтобы собрать текущий выбранный элемент в C#.
Вот XAML для списка выбора.
<toolkit:ListPicker x:Name="brewMethodList" HorizontalAlignment="Left" Margin="-2,24,0,0" VerticalAlignment="Top" Height="127" Width="164" BorderBrush="#FF162E3E" Foreground="Black" SelectionChanged="brewMethodSelectionChange" LostFocus="quantityInputLostFocus" Background="#FF5C97BF" >
<toolkit:ListPickerItem x:Name="manual_list" Content="Manual" Background="#FF5C97BF"/>
<toolkit:ListPickerItem x:Name="autoDrip_list" Content="Auto Drip" Background="#FF5C97BF"/>
</toolkit:ListPicker>
Вот C# пытается получить доступ к выбранному элементу.
private void brewMethodSelectionChange(object sender, SelectionChangedEventArgs e)
{
if (brewMethodList.SelectedItem == manual_list)
{
brewMethod = MANUAL;
}
else
{
brewMethod = AUTO_DRIP;
}
update();
}
Это просто упрощенная версия, но она выдает "System.NullReferenceException", и если я наведу указатель мыши на "brewMethodList", он выдаст значение "ноль", и то же самое касается наведения мыши на "manual_list".
От имени того, что я новичок, я не совсем разбираюсь в привязке данных, и если это то, чем я должен заниматься, просто дайте мне знать, но я думал, что смогу обойтись без этого (плюс я не уверен в том, на что он способен), Все высоко ценится! Я прочитал почти каждую статью, которую смог найти.
1 ответ
Попробуй это
private void brewMethodSelectionChange(object sender, SelectionChangedEventArgs e)
{
var brewMethodList = sender as ListPicker;
if (brewMethodList.SelectedItem == manual_list)
{
brewMethod = MANUAL;
}
else
{
brewMethod = AUTO_DRIP;
}
update();
}
Но да, лучше использовать шаблон MVVM. Эта ссылка должна быть хорошей ссылкой, http://msdn.microsoft.com/en-us/magazine/hh852595.aspx
РЕДАКТИРОВАТЬ: также лучше, если вы не проверяете имя элементов управления, как только вы реализуете шаблон MVVM, это будет намного чище и проще, чем делать все, что стоит за кодом.:)