Благодаря этот вопрос (щелкните по мне!), у меня есть свойство Source
моего привязки WebBrowser
к моей ViewModel.
Теперь я хотел бы достичь еще двух целей:
- Получите свойство
IsEnabled
моих кнопок Back и Forward для правильной привязки к свойствамCanGoBack
иCanGoForward
WebBrowser
. - Выясните, как вызвать методы
GoForward()
иGoBack()
, не прибегая к кодовомузади и без возможности просмотра ViewModel оWebBrowser
.
У меня есть следующая (нерабочая) разметка XAML на данный момент:
<WebBrowser
x:Name="_instructionsWebBrowser"
x:FieldModifier="private"
clwm:WebBrowserUtility.AttachedSource="{Binding InstructionsSource}" />
<Button
Style="{StaticResource Button_Style}"
Grid.Column="2"
IsEnabled="{Binding ElementName=_instructionsWebBrowser, Path=CanGoBack}"
Command="{Binding GoBackCommand}"
Content="< Back" />
<Button
Style="{StaticResource Button_Style}"
Grid.Column="4"
IsEnabled="{Binding ElementName=_instructionsWebBrowser, Path=CanGoForward}"
Command="{Binding GoForwardCommand}"
Content="Forward >" />
Я уверен, проблема в том, что CanGoBack
и CanGoForward
не являются свойствами зависимостей (и не реализуют INotifyChanged
), но я не совсем уверен, как обойти это.
Вопросы:
-
Есть ли способ подключить прикрепленные свойства (как это было в случае с
Source
) или что-то подобное, чтобы заставить привязкиCanGoBack
иCanGoForward
работать? -
Как написать
GoBackCommand
иGoForwardCommand
, чтобы они были независимы от кода и ViewModel и могут быть объявлены в разметке?