【问题标题】:Control Binding Times in XAML在 XAML 中控制绑定时间
【发布时间】:2015-02-18 14:00:20
【问题描述】:

我想知道是否有办法定义 Grid 可以绑定到列表的次数?

例如,如果我有一个包含 20 个元素的列表,我可以将绑定限制为列表的前十个元素吗?

问题是我对 2 个不同的控件使用相同的列表,我需要第一个控件绑定到整个 all 列表,第二个绑定到前 10 个元素。那么有没有办法从 XAML 做到这一点?

谢谢:))

【问题讨论】:

  • 这不是 ViewModel 的用途/

标签: wpf xaml windows-8.1


【解决方案1】:

在您的代码隐藏、视图模型或上述列表所在的任何位置,只需设置一个公开您想要的内容的属性:

public IEnumerable<something> MyTopElements
{
    get { return myList.Take(10); }
}

改为绑定到那个

【讨论】:

  • 问题是我使用同一个列表绑定到2个不同的控件,我需要第一个控件绑定到整个all列表,第二个绑定到前10个元素。跨度>
  • 您的代码无法编译。将属性类型更改为IEnumerable&lt;something&gt; 或调用myList.Take(10).ToList();
  • @HajarIbrahiem 使用两个不同的视图模型属性?!
  • 我为每个控件使用不同的列表源解决了这个问题。我只是希望 Xaml 可以解决这个问题。
【解决方案2】:

在那种情况下

public List<something> MyTopItems    
{
    get { return myItems.Take(10); }
}

public List<something> MyItems    
{
    get { return myItems; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2012-02-27
    • 2013-03-29
    • 2012-04-15
    相关资源
    最近更新 更多