Для безголового браузера Chrome вам необходимо указать размер окна, а также в параметрах Chrome. Для безголового браузера селен не может определить размер вашего окна. Попробуйте и сообщите мне.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('window-size=1920x1480')
Они упоминали, почему другой подход использовался для Silverlight? Это может просто быть ограничение платформы.
Рекомендуемый подход должен абсолютно использовать саму модель представления в качестве Вашего представления DataContext
. На самом деле, вместо того, чтобы создать представление явно, необходимо создавать модель представления и иметь твердость WPF представление для Вас. Для этого регистр a DataTemplate
:
<DataTemplate DataType="{x:Type local:MyViewModel}">
<local:MyView/>
</DataTemplate>
Затем Вы просто засовываете свой экземпляр модели представления в a ContentControl
, ItemsControl
или безотносительно и WPF представит его с соответствующим DataTemplate
. Это DataTemplate
будет иметь модель представления как DataContext
, на основании шаблонной обработки WPF системы.
При чтении комментариев для видео Silverlight, Вы будете видеть, что привязка к ObservableCollection была ошибкой. Это заставляет исключение быть брошенным.
Большую часть времени Представление связывается с ViewModel (я не могу на самом деле думать о причине, когда я не сделал бы этого),
Примером Kents выше является общее правило, за которым я следую, заставляя Silverlight создать представление для меня, учитывая набор ViewModels.
У меня была некоторая поддержка от некоторых исключительно одаренных инженеров MS на нашем проекте, и они связывают Представление datacontext непосредственно к Модель Представления.
Идеально, у Вас не должно быть кода позади кода кроме Вашей Вашей установки контекста данных - заражают, это может быть сделано в XAML также.