/// <summary>
/// 指定インデクス範囲のアイテムを再描画
/// </summary>
/// <param name="startIndex">開始インデックス(-1で最末尾)</param>
/// <param name="endIndex">終了インデックス(-1で最末尾)</param>
/// <param name="invalidateOnly">無効にした後、再描画しない場合true</param>
public void RedrawItem(int startIndex, int endIndex, bool invalidateOnly)
{
if (startIndex == -1)
{
startIndex = _itemList.Count - 1;
}
if (endIndex == -1)
{
endIndex = _itemList.Count - 1;
}
int _startIndex = GetIndex(startIndex);
int _endIndex = GetIndex(endIndex);
if (_startIndex > _endIndex)
{
int tmp = _startIndex;
_startIndex = _endIndex;
_endIndex = tmp;
}
Debug.WriteLine(string.Format("RedrawItems({0}/{1}.{2}/{3})",
startIndex, _startIndex, endIndex, _endIndex));
if (_lvTarget.InvokeRequired)
{
_lvTarget.Invoke((MethodInvoker)(()
=> {
_lvTarget.RedrawItems(_startIndex, _endIndex, invalidateOnly);
// _lvTarget.Invalidate();
}));
}
else
{
_lvTarget.RedrawItems(_startIndex, _endIndex, invalidateOnly);
// _lvTarget.Invalidate();
}
}