数据绑定后如何添加项目?答案

您所在的位置:网站首页 unsupportedexception 数据绑定后如何添加项目?答案

数据绑定后如何添加项目?答案

2023-01-01 21:21| 来源: 网络整理| 查看: 265

有很多很多方法可以处理这种情况。

如果您正在处理一个简单的列表,而不是像我们在屏幕截图右侧看到的那样的动态马赛克,您可以简单地在列表后面放置一个按钮,使其看起来像你的清单。当您处理不自动滚动的列表并且是最符合语义的解决方案时,这非常有效。

如果您需要支持滚动,或者正在处理不能像马赛克一样简单地将按钮向下推的控件,则需要在绑定到列表的集合中添加一个虚拟项目。如果列表虚拟化不是问题,您可以简单地将其附加到转换器内的集合末尾。如果您需要支持虚拟化,那么这不是一个解决方案。您将需要一个自定义控件来处理这种情况。

最后,一旦将虚拟项目插入列表中,您可以在视图中生成项目时使用 DataTemplateSelector 在普通模板和虚拟模板之间切换。

public static class EnumerableExtensions { public static IEnumerable Append(this IEnumerable source, object o) { foreach (var x in source) { yield return x; } yield return o; } } public class DummyInserter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var source = value as IEnumerable; if (source == null) throw new UnsupportedException("DummyInserter converter requires an IEnumerable source"); return source.Append(new Dummy()).ToArray(); } }

对于 XAML:



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3