我试图改变一个框的颜色在gridview(有ItemTemplates有100个绿色框)。无法更改gridview项目源
首先,我创建了一个列表(类型为我的课),我添加的所有项目列出和我添加列表到我的GridView控件来源:
grid1.ItemsSource = boxlist;
后,我加入了项目点击事件在gridview上。我希望当我点击一个项目时,这个项目的颜色将会改变。所以我编辑清单,因为它:
int id = ((Boxes)e.ClickedItem).id;
boxlist[id].color = "DarkRed";
grid1.ItemsSource = boxlist;
我试过它改变点击项目的颜色,但它不起作用。列表项的颜色正在改变,但gridview没有采取。但我希望这个gridview采用这个新的源代码。我怎么解决这个问题?
我的类:
class Boxes
{
public int id { get; set; }
public string color { get; set; }
}
的GridView
的XAML<GridView x:Name="grid1" HorizontalAlignment="Left" Margin="354,41,0,0" VerticalAlignment="Top" Width="800" Height="650" SelectionMode="None" IsItemClickEnabled="True" ItemClick="grid1_ItemClick">
<GridView.Resources>
<DataTemplate x:Key="DataTemplate1">
<Grid Height="50" Width="50">
<Rectangle x:Name="rect1" Width="50" Height="50" Fill="{Binding color}" Tag="{Binding id}"/>
</Grid>
</DataTemplate>
</GridView.Resources>
<GridView.ItemTemplate>
<StaticResource ResourceKey="DataTemplate1"/>
</GridView.ItemTemplate>
</GridView>
你在WPF这样做呢?的WinForms? - 你能提供你正在使用的ItemTemplate和Gridview XAML吗? - 您需要使用ObservableCollection而不是List,以便用Collection中的更改通知UI。 – FHnainia 2013-04-25 17:40:44
我正在做XAML。 – 2013-04-25 17:42:27
我将List更改为ObservableCollection,但它有相同的内容。仍然无法更新。 – 2013-04-25 17:50:06