Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在自定义渲染器中更新网格内左/右滑动手势的BindingContext?_C#_Xamarin_Xamarin.ios_Custom Renderer - Fatal编程技术网

C# 如何在自定义渲染器中更新网格内左/右滑动手势的BindingContext?

C# 如何在自定义渲染器中更新网格内左/右滑动手势的BindingContext?,c#,xamarin,xamarin.ios,custom-renderer,C#,Xamarin,Xamarin.ios,Custom Renderer,我正在尝试使用FrameRenderer对我的Frame执行左右滑动手势。我在XAML中有以下代码(最少): 基本上,如果我向左滑动,它会给出列表中的下一个单词,如果我向右滑动,它会给出上一个单词。现在,向左和向右滑动的手势给了我想要的正确单词,但我的网格没有更新以显示正确的单词。有什么想法吗?我该如何实施 PS:我对自定义渲染器非常陌生。由于BindingContext位于框架内的网格上,您应该能够从框架渲染器中的框架内容获取网格,并通过执行以下操作在代码中设置其BindingContext:

我正在尝试使用
FrameRenderer
对我的
Frame
执行左右滑动手势。我在XAML中有以下代码(最少):

基本上,如果我向左滑动,它会给出
列表中的下一个单词,如果我向右滑动,它会给出上一个单词。现在,向左和向右滑动的手势给了我想要的正确单词,但我的网格没有更新以显示正确的单词。有什么想法吗?我该如何实施


PS:我对自定义渲染器非常陌生。

由于BindingContext位于框架内的网格上,您应该能够从框架渲染器中的框架内容获取网格,并通过执行以下操作在代码中设置其BindingContext:

var grid = Element?.Content as Layout<Xamarin.Forms.View>;
if (grid != null)
{
    grid.BindingContext = newBindingContext;
}
var grid=Element?。内容作为布局;
如果(网格!=null)
{
grid.BindingContext=newBindingContext;
}

由于BindingContext位于框架内部的网格上,您应该能够从框架渲染器中的框架内容获取网格,并通过执行以下操作在代码中设置其BindingContext:

var grid = Element?.Content as Layout<Xamarin.Forms.View>;
if (grid != null)
{
    grid.BindingContext = newBindingContext;
}
var grid=Element?。内容作为布局;
如果(网格!=null)
{
grid.BindingContext=newBindingContext;
}
public partial class FavoritesFrameRendererClass : Frame
{
    public FavoritesFrameRendererClass()
    {
        InitializeComponent();
    }

    protected override void OnBindingContextChanged()
    {
        base.OnBindingContextChanged();
        App.favoriteWords = App.DB.GetFavoritePhrases();
        App.favoriteWord = App.favoriteWords[App.index];
        favoritesGrid.BindingContext = App.favoriteWord;

        englishLabel.SetBinding(Label.TextProperty, Lang.English.Text());
        romajiLabel.SetBinding(Label.TextProperty, Lang.Romaji.Text());
    }
}
var grid = Element?.Content as Layout<Xamarin.Forms.View>;
if (grid != null)
{
    grid.BindingContext = newBindingContext;
}