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;
}