2016-02-09 2 views
0

Я пытаюсь обновить список, используя timer. код работает нормально, однако проблема в том, что selectedindex мигает, может быть, потому, что данные/ui перезагружаются каждый раз в 1сек.Мигает selectedindex в listview

Что я хочу, когда пользователь перемещается Я хочу, чтобы selectedindex сохранялся, не мигая подсветкой текущего списка.

145 номер транзакции подсвечивается ... он мигает подсветкой каждые 1 сек из-за таймера. как я могу помешать этому мигать? спасибо заранее ...

enter image description here

вот мой код:

public OrderCashieringView() 
    { 
     Timer time = new Timer(); 
     time.Interval = (10 * 100); 
     time.Tick += time_Tick; 
     time.Start(); 
    } 


    void time_Tick(object sender, EventArgs e) 
    { 
     if (lstOrders.IsDisposed == false) 
     { 
      int CurrentRow = lstOrders.SelectedIndex; 
      LoadDataCore(); 
      lstOrders.SelectedIndex = CurrentRow; 
     } 
    } 


    void LoadDataCore() 
    { 
      if (txtSearchOrderNumber.Text == String.Empty) 
      { 
       _model = svc.GetForPayment(); 
      } 
      else 
      { 
       _model = svc.GetForPayment().Where(a => a.TransactionNumber.Contains(txtSearchOrderNumber.Text)).ToArray(); 
      } 

      if (lstOrders.InvokeRequired) 
      { 
       this.Invoke(new MethodInvoker(() => 
       { 
        lstOrders.DataSource = _model.ToArray(); 
       })); 
      } 
      else 
      { 
       lstOrders.DataSource = _model.ToArray(); 
      } 

    } 
+0

При необходимости вызовите методы «BeginUpdate» и «EndUpdate» в режиме просмотра списка. –

+0

@SamAxe uhmm ... это до и после «LoadDataCore»? –

+0

Прочитайте документацию по этим функциям, и вы узнаете. –

ответ

0

Попробуйте связывание SelectedValue из Listview в собственность, я предполагаю, что после обновления выбора будет сохраняться. SelectedIndex обновится с новыми данными, привязанными к списку. Если вам определенно требуется SelectedIndex, вы можете найти индекс выбранного значения из списка, который вы привязываете к списку.

+0

hmmm Я действительно не понимаю ... вы подразумеваете, что я привязываю выбранный индекс к данным, которые я связываю? –

+0

Вы используете WPF? Я говорил о привязке SelectedValue of список в Xaml для свойства и выбор останутся после обновления. https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.selectedvalue(v=vs.110).aspx – ParameterX

+0

Я использую winforms telerik ..... Я не знаю, как привязывать значения моих списков к xaml, но сэр ... что я делаю, я создаю класс модели и сохраняю значения там ... , –

Смежные вопросы