我开发了 Windows Phone 8 应用程序。我正在使用长列表选择器来显示列表中的项目。到目前为止一切都很好。当用户单击长列表选择器的任何项目时,我想突出显示该项目的背景颜色,以便用户清楚地了解他/她选择了一个项目。
您能否告诉我如何在 Windows Phone 8 中执行此操作。我期待着回复。
我开发了 Windows Phone 8 应用程序。我正在使用长列表选择器来显示列表中的项目。到目前为止一切都很好。当用户单击长列表选择器的任何项目时,我想突出显示该项目的背景颜色,以便用户清楚地了解他/她选择了一个项目。
您能否告诉我如何在 Windows Phone 8 中执行此操作。我期待着回复。
我喜欢通过代码更好地控制我的应用程序,并避免在 xaml 中执行可能会变得复杂的事情。下面是我感觉的一种更简单的方法,它可以在代码中提供更多控制,并且需要对 xaml 进行最少的更改。它使 xaml 保持干净整洁,这应该是一个非常简单的操作。
将“BackColor”(或其他字符串)属性添加到您的绑定对象
public string BackColor { get; set; }
将该属性绑定到您的 xaml 中的某些内容,例如背景或堆栈面板或边框的边框颜色,这些内容将呈现视觉变化。例如
<StackPanel Orientation="Horizontal" Background="{Binding BackColor}">
在您的长列表选择器代码“SelectionChanged”事件中,使用 SelectionChangedEventArgs 中的 AdditionalItems 和 RemovedItems 集合更新绑定对象
if (e.AddedItems.Count > 0)
{
if (e.AddedItems[0] != null)
{
oMyObject = (MyServices.MyObjectDao)e.AddedItems[0];
oMyObject.BackColor = "Red";
}
}
if (e.RemovedItems.Count > 0)
{
if (e.RemovedItems[0] != null)
{
oMyObject = (MySercvices.MyObjectDao)e.RemovedItems[0];
oMyObject.BackColor = "Black";
}
}
您可以使用示例中的简单颜色,也可以使用 xaml 中的任何预定义颜色