【发布时间】:2019-07-08 02:25:21
【问题描述】:
我有一个GridView,模板设置如下:
<GridView.ItemTemplate>
<DataTemplate x:DataType="models:SampleModel">
<Grid Height="112" Padding="12" Width="227">
<TextBlock HorizontalAlignment="Center"
Text="{x:Bind Description}"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
SampleModel 类只有两个属性,Id: int 和 Description: string。 GridView 现在绑定到SampleModeltype 列表。像这样:
var list = new List<SampleModel>
{
new SampleModel { Id = 1, Description = "Apple" },
new SampleModel { Id = 2, Description = "Orange" },
new SampleModel { Id = 3, Description = "Banana" }
};
MyGridView.ItemsSource = list;
这是我的问题。在我们的程序中实现的另一种方法(返回int 值的集合)只抛出Id。如果此方法返回,例如 new int[] { 2, 3 },我如何获取绑定到 Orange 和 Banana 的 GridViewItem 对象?这是我到目前为止提出的,无济于事:
var source = MyGridView.DataContext as List<SampleModel>;
foreach (var id in new int[] { 2, 3 })
{
var fruit = source.FirstOrDefault(a => a.Id == id);
GridViewItem gvi = MyGridView.ContainerFromItem(fruit) as GridViewItem;
gvi.IsSelected = true;
}
【问题讨论】: