如何在MVVM中更改GridViewItem的IsHitTestVisible

时间:2014-06-26 10:45:17

标签: c# xaml mvvm windows-runtime winrt-xaml

我尝试使用MVVM绑定IsHitTestVisible的{​​{1}}。我已将特定模型的值从“False”更新为“True”,并使用GridViewItem通知了View。但它并没有影响到视野。但是如果我在setter中直接为INotifyPropertyChanged绑定值,它的工作正常。任何人都可以提供帮助吗?

IsHitTestVisible

在ViewModel中,我正在更新模型“CatalogItem”,如下所示:

<GridView 
   Grid.Row="1" 
   Name="gvCatalogue" 
   Width="Auto" 
   Height="Auto" 
   HorizontalAlignment="Left" 
   HorizontalContentAlignment="Left" 
   ItemsSource="{Binding Path=Catalogue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
   IsItemClickEnabled="True" >
   <GridView.ItemsPanel>
      <ItemsPanelTemplate>
         <VirtualizingStackPanel Orientation="Horizontal" Margin="0"/>
      </ItemsPanelTemplate>
   </GridView.ItemsPanel>
   <GridView.ItemContainerStyle>
      <Style TargetType="GridViewItem">
         <Setter Property="IsHitTestVisible" Value="{Binding Path=HitTestVisible, Mode=OneWay}"/>
      </Style>
   </GridView.ItemContainerStyle>
   <GridView.ItemTemplate>
      <DataTemplate>
         <Grid Name="ItemGrid" RightTapped="gvItem_RightTapped" Width="230" >
            <Grid.ColumnDefinitions>
               <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0" VerticalAlignment="Top" Height="260" Width="175" Orientation="Vertical" HorizontalAlignment="Center" >
               <Image Source="{Binding Path=BitmapImage, Mode=OneWay}" Height="250" Width="175" HorizontalAlignment="Center"/>
            </StackPanel>
         </Grid>
      </DataTemplate>
   </GridView.ItemTemplate>
</GridView>

1 个答案:

答案 0 :(得分:0)

上次我检查绑定在WinRT / XAML中的样式设置器中不起作用。我在这个问题的答案中提到了一个解决方法:

How do I do bindings in ItemContainerStyle in WinRT?

相关问题