Quodlibet (аудиоплеер / менеджер библиотеки) имеет дублирующийся плагин, чтобы найти, что дубликаты отслеживают совместное использование тех же тегов (художник, заголовок, длина, что-либо..). Так, если Ваша библиотека правильно отмечена, Ваши дубликаты файлов должны иметь те же теги. И будучи аудиоплеером, Вы могли более легко послушать/удалить/переименовать дорожки. Можно также установить любой шаблон тега, который Вы хотите, если, например, тег художника отсутствует..
Лежит ли двигатель в несвязанном состоянии? сначала контролирует его, а затем
Это действительно может быть так - Связывание данных WPF в значительной степени построено на Свойствах зависимости , которые действительно влияют на процесс макета WPF, см. Рекомендации по производительности макета :
Свойства зависимостей, значения которых Можно заставить систему макета быть инициализированные отмечены общедоступными флаги. Влияет на измерение и AffectsArrange предоставляет полезные подсказки, например к какому изменению стоимости свойства будут заставить рекурсивное обновление макетом система. В общем, любое свойство, которое может повлиять на размер элемента ограничивающая рамка должна установить Флаг AffectsMeasure имеет значение true. Для большего информацию см. Зависимость Обзор свойств .
И, в частности, относительно вашего вопроса см. Эту цитату из Оптимизация производительности: макет и дизайн :
Процесс прохода макета запускается снова, если происходит какое-либо из следующих действий:
- [...]
- Когда происходит изменение значения свойства зависимости, которое помечены метаданными, влияющими на проходы измерения или упорядочения.
Следовательно, я мог представить, что первоначальный проход макета не рассматривался как отличный от варианта использования, связанного с изменением значения позже, что объяснило бы поведение, которое вы испытываете. Хотя этот может все еще быть упущенной возможностью для оптимизации процесса запуска, применяются обычные предостережения по оптимизации: нет оптимизации без измерения - например, эта предполагаемая избыточность (если ее технически избежать вообще) может иметь нет измеримого воздействия, потому что окно / элемент управления еще не были показаны и т. д.
Отладка:
Чтобы добавить к предложению Дрюса средства отладки , добавлено новое специальное средство отладки, связанное с привязкой в .NET Framework 3.5 см. PresentationTraceSources.TraceLevel
- пример:
Не совсем ответ, но что, если вы добавите в привязку преобразователь, который ничего не делает, кроме вывода сообщения, показывающего, в какой момент выполняется оценка привязки?
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;
}
}