Использование памяти при использовании привязки - PullRequest
1 голос
/ 14 сентября 2011

Я создал два простых файла XAML, которые содержат один TextBox.

Первый шаблон использует статический текст:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <TextBox Height="20" Width="120" Text="Static Text" />
    </Grid>
</Page>

Второй шаблон использует привязку для свойства Text:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <TextBox Height="20" Width="120" Text="{Binding Path=Test}" />
    </Grid>
</Page>

Когда я загружаю шаблон в цикле, использование памяти постоянно увеличивается, когда я использую шаблон с привязкой:

while (true)
{
    // Memory usage increases
    var binding = Application.LoadComponent(new Uri("/ConsoleApplication1;component/Binding.xaml", UriKind.Relative));

    // Memory usage stays constant
    //var noBinding = Application.LoadComponent(new Uri("/ConsoleApplication1;component/NoBinding.xaml", UriKind.Relative));
}

Любые идеи о том, как использование памяти может быть постоянным, когдаиспользуя привязки?

1 Ответ

0 голосов
/ 24 октября 2011

Мы решили проблему с помощью пользовательского MarkupExtension . По умолчанию Binding не является сборщиком мусора до тех пор, пока приложение не будет закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...