Какую стратегию следует использовать для преобразования реальных измерений в единицы измерения WPF? - PullRequest
1 голос
/ 02 декабря 2009

У нас есть приложение, которое будет считывать измерения реального мира из БД в миллиметрах, затем эти значения будут представлены пользователю в WPF. В настоящее время я использую следующую стратегию при чтении объектов из хранилища данных путем умножения MilimetresPrWpfUnit в следующем примере.

public const double MilimetresPerInch = 25.4;
public const double WpfUnitsPerInch = 96;
public const double MilimetresPerWpfUnit
    = WpfUnitsPerInch / MilimetresPerInch;

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

Есть ли в WPF утилита для изменения размера единицы измерения на метрическую? Это может быть лучшим решением.

Альтернативой является создание IValueConverter, которое будет конвертировать из / в метрические единицы, хотя, боюсь, это может повлиять на производительность.

1 Ответ

1 голос
/ 19 декабря 2009

Привет, Бретт, ты беспокоишься о том, что если ты сделаешь это сам, то это повлияет на производительность? Я не знаю, но если вы подумаете об этом, будь то автоматизировано фреймворком или сделано вами, всегда будет снижение производительности для конвертации. Вам действительно нужно определиться, в какой момент ваши данные могут быть преобразованы, чтобы преобразование не требовало непрерывной репликации при работе с данными.

Несколько способов подойти к этому ...

Метод IValueConverter определенно был бы одним из способов решения этой проблемы, или вы могли бы написать метод, который преобразует данные в метрику, которую вы хотите, когда данные загружаются, но в целом что-то вроде этого действительно является специфическим для проекта сценарием и что-то, где нужно было бы увидеть больше кода или получить более общее объяснение алгоритма, чтобы дать какие-либо правильные рекомендации.

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