Оказывается, оборачивание сетки данных в ScrollViewer с горизонтальной полосой прокрутки вызывает эту проблему.
Я нашел этот вопрос, который привел меня к решению: отключить турник, так как он мне не нужен. WPF ScrollViewer вокруг DataGrid влияет на ширину столбца
Srikanth имеет хороший ответ. Я хотел бы уточнить альтернативу, все же. Предположим, что у Вас есть эта простая иерархия URL:
/gallery /blog /admin/login /admin/newpost
Если это реализовано с Контроллерами Страницы (PHP, например), оба gallery.php
и blog.php
должен будет включать некоторых common.php
вначале (или поблизости). Однако оба login.php
и newpost.php
может включать admin-common.php
, который самостоятельно вытягивает в 'common.php' и делает '/admin / '-specific установка, как проверка, что пользователь аутентифицируется.
В целом, если у Вас есть иерархия URL, она заканчивает тем, что походила много на объектные деревья наследования. Кроме вместо того, чтобы использовать наследование уровня языка, Вы наследовали среду что foo-common.php
Вы включаете.
Я не могу вообразить, как Фронтальный контроллер увеличивает тестируемость В конце, те же самые тесты от автоматизированного агента пользователя HTTP требуются, независимо от реализации.
Одна главная оборотная сторона Контроллеров Страницы - это, действительно делает Ваше веб-приложение зависящим от его среды хостинга. Это также вынуждает Ваших разработчиков "рассматривать" ту же структуру как конечных пользователей, но я полагаю, что хорошая вещь, рассматривая количество сайтов, я вижу, что имеют абсолютно зверские URL.
Одним преимуществом использования Фронтального контроллера является своя тестируемость. при использовании TDD, намного легче протестировать контроллер, чем это должно запросить много различных веб-сайтов.
Добавленный позже: Tom: причина Thea я имею в виду это, является более тестируемой, то, потому что Вы обычно реализуете webhandlers как страницы сервера, а не класс. и затем можно сделать много tetst непосредственно на классах.
Перефразирование статьи Wikipedia о Фронтальном контроллере:
В предложении - Вы используете его для предотвращения дублирования.
Немного более подробный:
Фронтальный контроллер "обеспечивает централизованную точку входа для обрабатывания запросов". Давайте предположим, что фронтальный контроллер для Вашего веб-приложения index.php
.
Этот сценарий, index.php, справился бы со всеми задачами, которые характерны для целого приложения или платформы вокруг, как обработка сессии, кэширование, входная фильтрация. В зависимости от данного вводит его, затем инстанцировал бы дальнейших объектов и методов вызова для справлений с конкретной задачей.
Альтернатива фронтальному контроллеру была бы отдельными сценариями как login.php и order.php, который будет каждый включать код или объекты, которые характерны для всех задач. Это нуждалось бы в повторении кода включения в каждом сценарии, но могло бы также оставить больше комнаты для определенных потребностей сценария.