繁体   English   中英

Xamarin Forms flyoutitem 图标绑定在初始后不更新

[英]Xamarin Forms flyoutitem icon binding not updating after initial

我正在尝试将我的图标绑定到我的 appshell 视图模型中的一个属性。 这是第一次起作用,我正在观察“flyoutispresented”属性更改以更新图标 - 我在两个不同的 png 之间切换。 事件每次都会触发,我可以看到视图模型中的属性正在更新,但弹出图像没有改变。 它似乎保持第一次渲染时的样子。 在我的 appshell 构造函数中,我正在执行以下操作:

模型 = 新 AppShellViewModel(); this.BindingContext = 模型;

        this.PropertyChanged +=
        (obj, args) => model.Shell_PropertyChanged(obj, args);

所以我使用视图模型的单个实例,并且该方法被正确调用。 有没有人有幸显示过这样的不同图标? 我错过了什么,即使我正在更改图标属性,它也没有显示更改?

我们可以通过 VisualStateManager 状态选择和正常来修改图标源。

<Shell.ItemTemplate>
    <DataTemplate >
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.2*" />
                <ColumnDefinition Width="0.8*" />
            </Grid.ColumnDefinitions>
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroupList>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState x:Name="Normal">
                            <VisualState.Setters>
                                <Setter TargetName="FlyoutItemIcon" Property="Image.Source" Value="icon_about.png"></Setter>
                            </VisualState.Setters>
                        </VisualState>
                        <VisualState x:Name="Selected">
                            <VisualState.Setters>
                                <Setter TargetName="FlyoutItemIcon" Property="Image.Source" Value="cactus_24px.png"></Setter>
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateGroupList>
            </VisualStateManager.VisualStateGroups>
            <Image x:Name="FlyoutItemIcon" Source="{Binding FlyoutIcon}"
                   Margin="5"
                   HeightRequest="45" >
            </Image>
            <Label  Grid.Column="1"
                   Text="{Binding Title}"
                   FontAttributes="Italic"
                   VerticalTextAlignment="Center" />
        </Grid>
    </DataTemplate>
</Shell.ItemTemplate>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM