Mau*_*hah 2 xamarin.ios xamarin.android xamarin xamarin.forms
我想在xamarin中隐藏导航栏按钮。我该如何使用绑定。工具栏项没有“ IsVisible”属性。
以下是我的XAML代码
请帮助我解决此问题。
我建议建立一个可绑定的ToolBoxItem。这样,您可以通过视图模型属性控制可见性。
一个实现可能看起来像这样:
public class BindableToolbarItem : ToolbarItem
{
public static readonly BindableProperty IsVisibleProperty = BindableProperty.Create(nameof(IsVisible), typeof(bool), typeof(BindableToolbarItem), true, BindingMode.TwoWay, propertyChanged: OnIsVisibleChanged);
public bool IsVisible
{
get => (bool)GetValue(IsVisibleProperty);
set => SetValue(IsVisibleProperty, value);
}
private static void OnIsVisibleChanged(BindableObject bindable, object oldvalue, object newvalue)
{
var item = bindable as BindableToolbarItem;
if (item == null || item.Parent == null)
return;
var toolbarItems = ((ContentPage)item.Parent).ToolbarItems;
if ((bool)newvalue && !toolbarItems.Contains(item))
{
Device.BeginInvokeOnMainThread(() => { toolbarItems.Add(item); });
}
else if (!(bool)newvalue && toolbarItems.Contains(item))
{
Device.BeginInvokeOnMainThread(() => { toolbarItems.Remove(item); });
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如你发现自己没有IsVisible。因此,如果您仍然想要它,则必须自己实现类似的功能。
另一种方法是在页面的代码隐藏中处理它,并在需要时删除或添加工具栏项。
添加和删除很简单,只需在ToolbarItems集合中添加和删除项目:ToolbarItems.RemoveAt(0);例如将删除第一个工具栏项目。
| 归档时间: |
|
| 查看次数: |
3426 次 |
| 最近记录: |