[英]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.