我有一个
<GridView/>
与 ItemsSource 绑定到 IObservableVector<DeviceViewModel>
。我只想禁用此 GridView 中的几个项目。我怎样才能做到这一点?我看到了其他类似的问题,但它们似乎不完整,而且不在 C++/WinRT 中。
以下是我的GridView
<GridView x:Name="DeviceTargets"
x:Uid="SDeviceTargets"
Grid.Row="1"
x:DeferLoadStrategy="Lazy"
Visibility="Collapsed"
Margin="12 14 12 10"
IsItemClickEnabled="True"
ItemClick="OnDeviceTargetsItemClicked"
ItemContainerStyle="{StaticResource GridViewItemStyleSV}"
ItemsSource="{x:Bind ViewModel.DeviceList, Mode=OneWay}"
Padding="0"
SelectionMode="None"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.VerticalScrollMode="Disabled">
<GridView.ItemTemplate>
<DataTemplate x:DataType="viewModels:DeviceViewModel">
<local:DeviceItem ViewModel="{x:Bind}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
请尝试以下代码:
// TestOrder is the target item's source.
auto container = m_ListViewTest().ContainerFromItem(TestOrder);
Windows::UI::Xaml::Controls::ListViewItem item = container.as<Windows::UI::Xaml::Controls::ListViewItem>();
item.IsEnabled(false);
这是我用
ListView
制作的示例代码,你只需要把ListView
改成GridView
确保在加载目标项时调用它。