Exemplo n.º 1
0
 private void ParkingLotListSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     foreach (var oldItem in e.RemovedItems)
     {
         var oldItemContainer = ParkingLotList.ContainerFromItem(oldItem);
         var oldListViewItem  = oldItemContainer as ListViewItem;
         if (oldListViewItem != null)
         {
             Debug.WriteLine("[MainView] parking lot list: remove selected visual state for " + (oldItem as ParkingLot).Name);
             var element = oldListViewItem.ContentTemplateRoot as Control;
             if (element != null)
             {
                 VisualStateManager.GoToState(element, "Unselected", false);
             }
         }
     }
     foreach (var newItem in e.AddedItems)
     {
         var newItemContainer = ParkingLotList.ContainerFromItem(newItem);
         var newListViewItem  = newItemContainer as ListViewItem;
         if (newListViewItem != null)
         {
             Debug.WriteLine("[MainView] parking lot list: add selected visual state for " + (newItem as ParkingLot).Name);
             var element = newListViewItem.ContentTemplateRoot as Control;
             if (element != null)
             {
                 VisualStateManager.GoToState(element, "Selected", false);
             }
         }
     }
 }
Exemplo n.º 2
0
        private async void SetParkingLotListSelectionVisualState(ParkingLot selectedItem = null)
        {
            if (selectedItem == null)
            {
                selectedItem = Vm.SelectedParkingLot;
            }
            if (selectedItem != null)
            {
                ListViewItem listViewItem = null;
                var          count        = 0;
                while (listViewItem == null && count < 10)
                {
                    var itemContainer = ParkingLotList.ContainerFromItem(selectedItem);
                    listViewItem = itemContainer as ListViewItem;
                    await Task.Delay(200);

                    count++;
                }

                if (listViewItem != null)
                {
                    Debug.WriteLine("[MainView] parking lot list: set selected visual state for " + selectedItem.Name);
                    VisualStateManager.GoToState(listViewItem.ContentTemplateRoot as Control, "Selected", false);
                }
                else
                {
                    Debug.WriteLine("[MainVm] parking lot list: list view item is null :/");
                }

                ParkingLotList.ScrollIntoView(selectedItem);
            }
            else
            {
                Debug.WriteLine("[MainView] parking lot list: set selected index to -1");
                ParkingLotList.SelectedIndex = -1;
            }
        }