Xaml 如何在禁用ISITETSTVISIBLE的同时选择gridview中的项目
我有一个GridView,其中包含少量项目。我希望我的用户能够通过单击来选择项目。但是,如果他们在GridView背景上单击或拖动,即在项目上,则我希望事件传递到下面的控件 如果将MyGridView.IshittesVisible设置为false,则可以操作网格下的项目,但无法选择网格项目。在ItemTemplate上设置IshittesVisible=true没有帮助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
的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
?