- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我关心的是突出显示我的 LongListSelector 中的选定项目当用户点击它时。
我试过这个解决方案:http://code.msdn.microsoft.com/windowsapps/Highlight-a-selected-item-30ced444#content
但是我还有一个问题。
在我的项目中,LongListSelector 充满了 90~100 个项目,如果我点击第 xth 元素,则 (x+20)th,(x+ 40)th、(x+60)th、(x+80)th... 也突出显示。这怎么可能?这是什么原因造成的?
我尝试调试,我注意到“userControlList”(通过上面的链接查看 MyLongListSelector1_SelectionChanged 事件处理程序)在执行“GetItemsRecursive”后有 20 个元素,而不是我预期的至少 90~100。
如果你不能解决这个问题,那么有谁知道如何在 LongListSelector 中实际突出显示选定的项目? (不能选择使用列表框)
最佳答案
我们给您写一个更容易理解的更好的怎么样?另外你可以有任何高亮颜色的组合?我将其用于我的一些应用程序。它所做的只是将背景颜色也绑定(bind)到类。如果被选中,则返回类的高亮颜色,否则返回非高亮颜色。
示例数据点 - 如您所见,您可以设置高亮颜色和非高亮颜色
public class sample_data : INotifyPropertyChanged
{
// Create the OnPropertyChanged method to raise the event
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
public sample_data(string name)
{
this.Name = name;
this.IsSelected = false;
this.NonHighlightColor = new SolidColorBrush(Colors.Transparent);
this.HighLightColor = new SolidColorBrush(Colors.Red);
}
public string Name { get; set; }
private bool _is_selected;
public bool IsSelected
{
get { return _is_selected; }
set
{
_is_selected = value;
OnPropertyChanged("HighlightBackgroundColor");
}
}
public SolidColorBrush HighlightBackgroundColor
{
get { if (IsSelected) return HighLightColor; else return NonHighlightColor; }
}
private SolidColorBrush HighLightColor{ get; set; }
private SolidColorBrush NonHighlightColor { get; set; }
}
让我们创建 ObservableCollection 并设置 LongListSelector 的 ItemSource。
private ObservableCollection<sample_data> CreateSampleData()
{
ObservableCollection<sample_data> sd = new ObservableCollection<sample_data>();
sd.Add(new sample_data("Bob"));
sd.Add(new sample_data("Dan"));
sd.Add(new sample_data("Kate"));
sd.Add(new sample_data("Bart"));
sd.Add(new sample_data("Sanders"));
sd.Add(new sample_data("Dog"));
return sd;
}
// Constructor
public MainPage()
{
InitializeComponent();
mylonglist.ItemsSource = CreateSampleData();
}
现在是 XAML
<phone:LongListSelector x:Name="mylonglist" SelectionChanged="mylonglist_SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Background="{Binding HighlightBackgroundColor}" Height="100">
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
选择更改代码
private void mylonglist_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
LongListSelector ls = sender as LongListSelector;
sample_data selected_item = ls.SelectedItem as sample_data;
// unselected the previous selections
foreach (sample_data sd in ls.ItemsSource)
{
if (sd != selected_item)
{
sd.IsSelected = false;
}
}
// set the selected item (this will cause the background color to change)
selected_item.IsSelected = true;
}
catch (Exception ex)
{
string error = ex.Message;
}
}
好了,现在您可以使用任何颜色和自定义颜色突出显示每个项目,而不会弄乱凌乱的 VisualState Manager。
关于c# - WP8高亮SelectedItem LongListSelector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070203/
我无法让我的长列表选择器正常工作。当列表比屏幕高时,长列表选择器保持静态,我无法滚动查看所有项目。 有什么想法吗?
使用 LongListSelector 对日期进行分组的 Windows Phone 8 SDK 问题。我熟悉 grouping on letters 的 AlphaKeyGroup 辅助方法。 .
我关心的是突出显示我的 LongListSelector 中的选定项目当用户点击它时。 我试过这个解决方案:http://code.msdn.microsoft.com/windowsapps/Hig
我在 Windows Phone 8 应用程序中有一个 LongListSelector(在 PivotItem 中)控件。我看到一个奇怪的行为。有时 LLS 停止滚动。就像卡住一样,我无法滚动它。但
我有这个类 AlphaKeyGroup: public class AlphaKeyGroup : List { /// /// The delegate that is used
我刚开始使用 C# Windows Phone 8 进行开发,我正在尝试编写一个使用 LongListSelector 的应用程序。该应用程序将显示一长串火车站名称。 我一直在网上查看一些示例,包括
我的 App LongListSelector 中有一个,这是我设置项目源的方式: historylist.ItemsSource = new List(historyRep.historyArray
我是 WP8 的新手。 我对 longlistselector 有疑问。 我有一个长列表选择器,我将它滚动到最后一项。没关系。 但是当我降低它的高度并将它滚动到最后一项时。但 longlistsele
我有一组要显示为列表的对象。因此,我将 LongListSelector 与该集合绑定(bind)。集合中的所有项目都以列表的形式出现。接下来我要做的是当用户长按某个项目时,它会弹出一个带有删除、添加
我有一个聊天应用程序,它在 LongListSelector 中显示消息,并使用语句 ObservableCollection.Insert(0, message) 添加新消息。 我的问题是,添加新消
在我的 WP8 应用程序中,我正在尝试实现一项功能,允许我保存 LongMultiListSelector 的滚动位置并在稍后将其滚动到该位置(例如,在逻辑删除之后)。事实证明这是一项艰巨的任务,尽管
LongListSelector 是否支持数据虚拟化?我在几个博客上看到它确实有效,但无法正常工作。 这是我尝试过的:我提供了一个 IList 实现作为列表的 ItemsSource。问题在于 Lis
我在 Windows Phone 8 上使用 LongListSelector 控件,无法找到处理项目点击的最佳方式。我发现的几个例子依赖于 SelectionChanged 事件。但是,这个解决方案
有谁知道如何更改 LongListSelector 的滚动条的颜色。我尝试更改 ControlTemplate 上的前景,但没有成功。 最佳答案 LongListSelectors 模板中 Scrol
我在 Windows Phone 应用程序中有一个 LongListSelector。 每个项目都有一个图片和一个文字。 我想为它们交替使用两个不同的 ItemTemplates。 第一个是右边的图片
我使用 mvvm 模式创建了一个 longlistselector。 我在不同的标题下创建了许多城市名称。 我想知道如何在用户选择或点击特定项目时导航到特定页面。 最佳答案 您可以简单地为每个 Lis
我正在使用 LongListSelector 在 Windows Phone 8 上使用 XAML 和 C# 制作无限滚动提要。要显示的项目从网络提要加载并使用数据绑定(bind)显示,每个项目的字段
我只想在我的 LongListSelector 中的当前选定项周围显示一个边框。我已经为我的 LongListSelector 设置了一个 ItemTemplate,但是我不确定如何修改 Border
我想动态更改 LongListSelector 的 ItemTemplate。我通过将它绑定(bind)到我的 ViewModel 中的一个属性来做到这一点: 到目前为止,这是可行的。问题是,如
我的应用程序中有一个特定的配色方案,我不想让我的 LongListSelectors 跳转列表样式与我的配色方案完全匹配,我已经为 JumpList 等创建了样式。
我是一名优秀的程序员,十分优秀!