10,000 개의 항목이있을 때 컨텍스트 메뉴가 표시되는 데 10 초 이상 걸렸으므로이 방법을 더 빨리 수행하고 싶습니다 (예 : 1 초 미만)WPF 컨텍스트 메뉴가 많은 항목에서 느립니다. 어떻게 속도를 높일 수 있습니까?
다음은 컨텍스트를 보여주는 테스트 코드입니다. 직접 메뉴 느림 :
이private void button1_Click(object sender, RoutedEventArgs e)
{
ContextMenu cm = new ContextMenu();
for (int i = 0; i < 1000; i++)
{
MenuItem mi = new MenuItem();
mi.Header = "test"; // this is HOT - 3%
mi.Tag = this; // cold
for (int j = 0; j < 10; j++)
{
MenuItem mi2 = new MenuItem(); // this is HOT - 1%
mi2.Header = "test"; // this is HOT - 12%
mi2.Tag = this; // cold
mi.Items.Add(mi2); // this is HOT - 6%
}
cm.Items.Add(mi); // this is HOT - 3%
}
cm.IsOpen = true; // this is HOT - 72%
}
내가는 cm.IsOpen 대부분의 시간을 복용 사용했습니다 성능 프로파일에 따르면 -하지만 mi.Header 설정도 중요하다.
왜 당신이 사용할 수없는 상황에 맞는 메뉴를 만들고있다? – SLaks
정확히 내 생각은 메뉴가 대략 9 개 항목까지 잘 작동합니다. 10k 항목을 채우는 것은 넌센스 일뿐 아니라 미친 짓입니다. – Joey
Woah, 컨텍스트 메뉴에 10000 개 항목, 나는 컨텍스트 메뉴를 싫어했을 것이다. – Gabe