【发布时间】:2013-09-27 09:56:37
【问题描述】:
我有一个小问题。
我将一个 XML 文件绑定到一个 itemGridView 和一个 itemListView
Databind:(工作得很好,只提供我在这里所做的)
var data = from query in xdoc.Descendants("Colour")
select new ColourClass
{
Colour = "FFFF0000"
};
itemGridView.DataContext = data;
itemListView.DataContext = data;
我想在选择网格中的项目时更改文本的颜色(永久更改颜色)。我写了这个:它似乎不起作用。
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
((ColourClass) e.ClickedItem).Colour = "#FF46FF00";
}
我的 XAML:
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.RowSpan="2"
Padding="116,136,116,46"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource Standard250x250ItemTemplate}"
SelectionMode="None"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"/>
以及标准模板:
<DataTemplate x:Key="Standard250x250ItemTemplate">
<Grid HorizontalAlignment="Left" Width="400" Height="60">
<StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
<TextBlock Text="test" Foreground="{Binding Colour, Mode=TwoWay}" Style="{StaticResource AppIDTextStyle}" Height="60" Margin="15,0,15,0"/>
</StackPanel>
</Grid>
</DataTemplate>
如何更改 gridview 中使用的 Standard 250 模板中特定项目的颜色?
我尝试通过数据绑定本身来更改颜色,但我愿意接受更简单的方法。
我需要做的只是当用户单击项目时项目的颜色从红色变为绿色。
【问题讨论】:
-
你试过 ColourClass 中的 INotifyPropertyChanged 了吗?
标签: data-binding windows-runtime microsoft-metro windows-store-apps winrt-xaml