Xaml 如何在禁用ISITETSTVISIBLE的同时选择gridview中的项目

Xaml 如何在禁用ISITETSTVISIBLE的同时选择gridview中的项目,xaml,windows-8,windows-runtime,Xaml,Windows 8,Windows Runtime,我有一个GridView,其中包含少量项目。我希望我的用户能够通过单击来选择项目。但是,如果他们在GridView背景上单击或拖动,即在项目上,则我希望事件传递到下面的控件 如果将MyGridView.IshittesVisible设置为false,则可以操作网格下的项目,但无法选择网格项目。在ItemTemplate上设置IshittesVisible=true没有帮助 我该怎么做 将GridView的SelectedItem绑定到您的ViewModel(您使用的是Mvvm,对吗?)。然后,在

我有一个GridView,其中包含少量项目。我希望我的用户能够通过单击来选择项目。但是,如果他们在GridView背景上单击或拖动,即在项目上,则我希望事件传递到下面的控件

如果将MyGridView.IshittesVisible设置为false,则可以操作网格下的项目,但无法选择网格项目。在ItemTemplate上设置IshittesVisible=true没有帮助


我该怎么做

GridView
SelectedItem
绑定到您的ViewModel(您使用的是Mvvm,对吗?)。然后,在与项目交互时,将ViewModel的
SelectedItem
设置为所述项目的
DataContext
。要执行此操作,请在
项目模板
中创建一个
按钮
,然后将
命令
绑定到视图模型,并将
命令参数
绑定到
数据上下文

如果使用Mvvm Light的RelayCommand,它将如下所示:

在ViewModel中:

private Item _selectedItem;
public Item SelectedItem
{
    get { return _selectedItem; }
    set { _selectedItem = value; RaisePropertyChanged("SelectedItem"); }
}

public RelayCommand<Item> SetSelectedItemCommand
{
    get;
    private set;
}

private void _setSelectedItem(Item item)
{
    SelectedItem = item;
}

    //Constructor
public ViewModel()
{
    SetSelectedItemCommand = new RelayCommand<Item>(item => _setSelectedItem(item));
}
private Item\u selectedItem;
公共项目选择项
{
获取{return\u selectedItem;}
设置{u selectedItem=value;RaisePropertyChanged(“selectedItem”);}
}
公共中继命令SetSelectedItemCommand
{
得到;
私人设置;
}
私有void _setSelectedItem(项目)
{
选择editem=项目;
}
//建造师
公共视图模型()
{
SetSelectedItemCommand=new RelayCommand(item=>\u setSelectedItem(item));
}
在ItemTemplate中:

<Button Command="{Binding MyVM.SetSelectedItemCommand, Source={StaticResource Locator}}"
        CommandParameter="{Binding}">
        <!--Whatever else you want to show in your item-->
</Button>

在GridView中:

<GridView SelectedItem="{Binding MyVM.SelectedItem, Source="{StaticResource Locator}}"
          ...
</GridView>

您的“选择”是什么意思,您的意思是“将GridView的SelectedItem设置为单击的项目”?或者您的意思是“在控件/项目本身上设置一个“选定”值”?是的,我的意思是将网格视图SelectedItem设置为单击的项目。不幸的是,这没有帮助。如果MyGridView.IshittesVisible==false,则无法单击按钮。如果这是真的,那么我不能在网格后面操纵任何东西。您是否尝试过将ItemsPanel的
IsitTestVisible
设置为
false