【发布时间】:2019-01-13 13:45:11
【问题描述】:
Xamain.Forms 绑定 CanGoBack 和 CanGoForward 抛出错误:CanGoBack 不可访问。
它似乎适用于旧版本的 VS。
编辑:完整代码如下。
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="WebViewDemo.WebViewDemoPage">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness" iOS="10, 20, 10, 0" Android="10, 0" WinPhone="10, 0" />
</ContentPage.Padding>
<StackLayout>
<Entry Keyboard="Url" Placeholder="web address" Completed="OnEntryCompleted" /> <StackLayout Orientation="Horizontal" BindingContext="{x:Reference webView}">
<Button Text="⇐" FontSize="Large" HorizontalOptions="FillAndExpand" IsEnabled="{Binding CanGoBack}" Clicked="OnGoBackClicked" />
<Button Text="⇒" FontSize="Large" HorizontalOptions="FillAndExpand" IsEnabled="{Binding CanGoForward}" Clicked="OnGoForwardClicked" />
</StackLayout>
<WebView x:Name="webView" VerticalOptions="FillAndExpand" Source="https://xamarin.com" />
</StackLayout>
</ContentPage>
代码背后
public partial class WebViewDemoPage : ContentPage
{
public WebViewDemoPage()
{
InitializeComponent();
}
void OnEntryCompleted(object sender, EventArgs args)
{
webView.Source = ((Entry)sender).Text;
}
void OnGoBackClicked(object sender, EventArgs args)
{
webView.GoBack();
}
void OnGoForwardClicked(object sender, EventArgs args)
{
webView.GoForward();
}
}
任何想法如何正确绑定它?
谢谢。
【问题讨论】:
-
你有绑定这些属性的视图模型吗?
-
我正在关注“使用 Xamarin.Forms 创建移动应用程序”一书。完整代码如下。只要我输入 IsEnabled="{Binding CanGoBack}" , CanGoBack 就会被标记为错误。我可以绑定其他变量而不会出错,例如。 IsEnabled="{绑定高度}"
-
您可以删除项目中的obj和bin文件夹。然后清理并重建您的项目。我使用了您的代码,它工作正常。
-
我认为这与VS2017有关。我正在使用 15.9.5 和 Xamarin 4.12.3.78。我已经建立了新项目,一旦我尝试映射 CanGoForward,VS 就会显示无法访问此 var 的错误。我尝试以不同的方式(上下文、源/路径等)绑定它,但我仍然遇到同样的错误。
-
能否请您提供一个可以重现该问题的基本演示,以便我可以在身边进行测试。
标签: xamarin.forms binding