UNO Material BottomNavigationBar 事件处理程序

UNO Material BottomNavigationBar Event Handler

我正在我的应用程序中实现来自 Uno.Material 的 BottomNavigationBar。我可以让栏按我想要的方式显示 - 但是当我单击 bottomnavigationbaritem 以更改它时无法弄清楚事件处理程序的用途。我尝试过 ItemInvoked、OnPressed、OnTouch、OnClick、Clicked,但无法正常工作。我有点不好意思问 - 但有人能给我指出正确的方向,触发什么事件以及事件的方法签名应该是什么吗?

... ...

BottomNavigationBar 不会公开 ItemInvoked 事件。您可以通过 SelectedItem 属性 检索当前选择。我想它也可以提供一个 ItemInvoked 选项,就像 NavigationView 提供的那样,随时根据您的建议打开一个问题 here

但是,BottomNavigationBarItem 是一个 ToggleButton,因此它已经实现了 ClickCheckedUnchecked 事件。

下面是一个示例,说明如何在您的应用中处理这些事件。 (您可能只需要 Checked,具体取决于您的情况)

<controls:BottomNavigationBar>
    <controls:BottomNavigationBar.Items>

        <controls:BottomNavigationBarItem Label="Favorites"
                                          Click="OnClick"
                                          Checked="OnChecked"
                                          Unchecked="OnUnChecked">
            <controls:BottomNavigationBarItem.Icon>
                <SymbolIcon Symbol="Favorite" />
            </controls:BottomNavigationBarItem.Icon>
        </controls:BottomNavigationBarItem>
[...insert more items...]
    </controls:BottomNavigationBar.Items>
</controls:BottomNavigationBar>
public void OnClick(object sender, object args)
{
    var navBarItem = sender as BottomNavigationBarItem;

    // Add logic here
}

public void OnChecked(object sender, object args)
{
    var navBarItem = sender as BottomNavigationBarItem;

    // Add logic here
}

public void OnUnChecked(object sender, object args)
{
    // Items are automatically unchecked when another one is checked.
    var navBarItem = sender as BottomNavigationBarItem;

    // Add logic here
}