Xaml - Be careful of binding with ContextMenu

33 篇文章 0 订阅
14 篇文章 0 订阅

My context menu was binding its Tag to a viewmodels' list item, but wen the item changed, the Tag doesn't refresh.

<phone:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <Grid x:Name="gridEvent" Background="Transparent" Tap="gridEvent_Tap" Tag="{Binding}" Margin="12,0,12,12">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Image Grid.Column="0" Width="70" Height="70" Stretch="Uniform" Source="{Binding Converter={StaticResource eventToStatusIcon}}"/>
                            <Grid Grid.Column="1">
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <TextBlock Grid.Row="0" Style="{StaticResource PhoneTextNormalStyle}" Text="{Binding StartTimeDisplay}"/>
                                <TextBlock Grid.Row="1" Style="{StaticResource PhoneTextNormalStyle}" Text="{Binding Subject}"/>
                                <TextBlock Grid.Row="2" Style="{StaticResource PhoneTextNormalStyle}" Text="{Binding DialString}"/>
                            </Grid>


                            <toolkit:ContextMenuService.ContextMenu>
                                <toolkit:ContextMenu>
                                    <toolkit:MenuItem x:Name="menuDetails"  Tag="{Binding }" Click="menuDetails_Click"
                                        Header="{Binding Source={StaticResource LocalizedStrings}, Path=LocalizedResources.Conference_Details}"/>
                                </toolkit:ContextMenu>
                            </toolkit:ContextMenuService.ContextMenu>
                        </Grid>
                    </DataTemplate>
                </phone:LongListSelector.ItemTemplate>


The reason probably is ContextMenu isn't in the visual tree and the binding only works the 1st time when context menu initialized. I have to bind the Tag to the item's Key which is never changed, then always get the item by key when use it.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值