2

LongListSelectorを使用する場合、Windows Phone8espを初めて使用します。MySQLデータベースからリストをフェッチし、LongListSelectorにバインドしようとしています。私のコードでは、リストをフェッチするのではなく、MessageBoxダイアログのみを表示しています。何が問題なのか。または、リストをフェッチするためのコードを間違ったメソッドに配置しましたか?助けてください..

LongListSelectorにバインドされる文字列はf1、ListLongselector name=ListCompaniesです。

public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();

            // Set the data context of the LongListSelector control to the sample data
            DataContext = App.ViewModel;

            // Sample code to localize the ApplicationBar
            //BuildLocalizedApplicationBar();
        }

        // Load data for the ViewModel Items
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            //if (!App.ViewModel.IsDataLoaded)
            //{
            //    App.ViewModel.LoadData();
            //}

            string url = "http://localhost/taxi/fetch_nrb.php";
            WebClient webclientmenu = new WebClient();
            webclientmenu.DownloadStringCompleted += webclientmenu_DownloadStringCompleted;
            webclientmenu.DownloadStringAsync(new Uri(url));
        }

        // Handle selection changed on LongListSelector
        private void MainLongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //// If selected item is null (no selection) do nothing
            //if (MainLongListSelector.SelectedItem == null)
            //    return;

            //// Navigate to the new page
            //NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + (MainLongListSelector.SelectedItem as ItemViewModel).ID, UriKind.Relative));

            //// Reset selected item to null (no selection)
            //MainLongListSelector.SelectedItem = null;


        }

        void webclientmenu_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            //throw new NotImplementedException();
            try
            {
                string list = e.Result;
                string[] final = list.Split('#');
                string f1 = final[0];

                for (int i = 0; i < f1.Length; i++)
                {
                    ListCompanies.ItemsSource.Add(f1[i]);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Check Your Internet Connectivity and try again later.\n No Network Connection", "Network Error!", MessageBoxButton.OK);

            }
        }
4

2 に答える 2

0

このコードを変更する必要があります。

// Load data for the ViewModel Items
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            //if (!App.ViewModel.IsDataLoaded)
            //{
            //    App.ViewModel.LoadData();
            //}

            string url = "http://localhost/taxi/fetch_nrb.php";
            WebClient webclientmenu = new WebClient();
            webclientmenu.DownloadStringCompleted += webclientmenu_DownloadStringCompleted;
            webclientmenu.DownloadStringAsync(new Uri(url));
        }

これとともに ;

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (!App.ViewModel.IsDataLoaded)
            {
                App.ViewModel.LoadData();
            }
        }

そして、「LongListSelector_Loaded」イベントでロードイベントを作成します。これを行うには、xaml 側に移動し、longlistselector をクリックし、events をクリックして、[Loaded] ボックスをダブルクリックします。次に、次のように、その下にリクエストを書き込んでください。

 private void MainLongListSelector_Loaded(object sender, RoutedEventArgs e)
        {
            string url = "http://localhost/taxi/fetch_nrb.php";
            WebClient webclientmenu = new WebClient();
            webclientmenu.DownloadStringCompleted += webclientmenu_DownloadStringCompleted;
            webclientmenu.DownloadStringAsync(new Uri(url));
        }

幸運を。

于 2013-06-06T11:13:56.137 に答える