我尝试使用timer
刷新列表视图。
代码工作正常,但问题是selectedindex
闪烁可能是因为数据/ ui每1秒重新加载一次。
我想要的是,当用户导航时,我希望保留selectedindex
而不会闪烁当前列表突出显示。
145
交易号码突出显示...由于计时器,它每1秒闪烁一次突出显示。我怎么能防止它眨眼?提前谢谢......
这是我的代码:
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 :(得分:0)
尝试将Listview的SelectedValue绑定到属性,我假设刷新后的选择将保持不变。 SelectedIndex将刷新绑定到列表的新数据。 如果您特别需要SelectedIndex,则可以从绑定到列表视图的列表中找到所选值的索引。