UserControls之间的事件调用非常缓慢

时间:2015-05-17 12:20:30

标签: c#

在这个例子中,我有一个MainPage和两个UserControls

MainPage - Page
Content - UC
ButtonPanel - UC

在我的ButtonPanel中,我有一个从数据库中删除项目的按钮,之后我希望更新Content以显示更新的内容。 为此,我使用以下代码:

MainPage Xaml:

<UC:Content x:Name="Content" />
<Panels:ButtonPanel x:Name="ButtonPanel" />

MainPage Codebehind:

ButtonPanel.DeleteItem += new EventHandler(UpdateContent);

private void UpdateContent(object sender, EventArgs e)
{
    // If i start a stopwatch here and stop it in Content.Refresh()
    // It shows that it took 3000 miliseconds to go from this method
    // Into the Content.Refresh method, without executing any code.
    Content.Refresh();
    OnPropertyChanged("Content");
}

内容UC Codebehind:

public void Refresh()
{
    // Update content
    // StopWatch shows that running all of this code takes 20 miliseconds.
}

ButtonPanel UC Codebehind:

private static EventHandler _deleteItem;
public static event EventHandler DeleteItem
{
    add
    {
        if (_deleteItem == null)
        {
            _deleteItem += value;
        }
    }
    remove
    {
        _deleteItem -= value;
    }
}

private void ButtonDelete_Tapped(object sender, TappedRoutedEventArgs e)
{
    // This takes no time at all either.
    // Delete items from database
    if (_buttonRefreshEvent != null)
        _buttonRefreshEvent(this, EventArgs.Empty);
}

基本上,秒表告诉我的是从MainPage进入Content.Refresh()需要3000毫秒。为什么这样,我能做些什么来减少这种负载速度,因为它非常令人沮丧。

0 个答案:

没有答案