Привязка и отношение Расположения в WPF

Quodlibet (аудиоплеер / менеджер библиотеки) имеет дублирующийся плагин, чтобы найти, что дубликаты отслеживают совместное использование тех же тегов (художник, заголовок, длина, что-либо..). Так, если Ваша библиотека правильно отмечена, Ваши дубликаты файлов должны иметь те же теги. И будучи аудиоплеером, Вы могли более легко послушать/удалить/переименовать дорожки. Можно также установить любой шаблон тега, который Вы хотите, если, например, тег художника отсутствует..

8
задан Steffen Opel 2 September 2009 в 12:24
поделиться

2 ответа

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

Это действительно может быть так - Связывание данных WPF в значительной степени построено на Свойствах зависимости , которые действительно влияют на процесс макета WPF, см. Рекомендации по производительности макета :

Свойства зависимостей, значения которых Можно заставить систему макета быть инициализированные отмечены общедоступными флаги. Влияет на измерение и AffectsArrange предоставляет полезные подсказки, например к какому изменению стоимости свойства будут заставить рекурсивное обновление макетом система. В общем, любое свойство, которое может повлиять на размер элемента ограничивающая рамка должна установить Флаг AffectsMeasure имеет значение true. Для большего информацию см. Зависимость Обзор свойств .

И, в частности, относительно вашего вопроса см. Эту цитату из Оптимизация производительности: макет и дизайн :

Процесс прохода макета запускается снова, если происходит какое-либо из следующих действий:

  • [...]
  • Когда происходит изменение значения свойства зависимости, которое помечены метаданными, влияющими на проходы измерения или упорядочения.

Следовательно, я мог представить, что первоначальный проход макета не рассматривался как отличный от варианта использования, связанного с изменением значения позже, что объяснило бы поведение, которое вы испытываете. Хотя этот может все еще быть упущенной возможностью для оптимизации процесса запуска, применяются обычные предостережения по оптимизации: нет оптимизации без измерения - например, эта предполагаемая избыточность (если ее технически избежать вообще) может иметь нет измеримого воздействия, потому что окно / элемент управления еще не были показаны и т. д.


Отладка:

Чтобы добавить к предложению Дрюса средства отладки , добавлено новое специальное средство отладки, связанное с привязкой в .NET Framework 3.5 см. PresentationTraceSources.TraceLevel - пример:

2
ответ дан 6 December 2019 в 00:59
поделиться

Не совсем ответ, но что, если вы добавите в привязку преобразователь, который ничего не делает, кроме вывода сообщения, показывающего, в какой момент выполняется оценка привязки?

public sealed class LoggingConverter : IValueConverter
{
    public void Convert(object value, Type targetType,
                        object parameter, CultureInfo culture)
    {
        Console.WriteLine("Binding.Convert");
        return value;
    }

    public void ConvertBack(object value, Type targetType,
                            object parameter, CultureInfo culture)
    {
        Console.WriteLine("Binding.ConvertBack");
        return value;
    }
}
1
ответ дан 6 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: