【问题标题】:Bind second level of nested arrays in XAML on Windows 8在 Windows 8 上的 XAML 中绑定第二级嵌套数组
【发布时间】:2012-09-08 14:52:15
【问题描述】:

我想将一个两级嵌套数组绑定到 Windows 8 Metro 风格应用程序中的 XAML 控件。数组看起来像(其中 A、B、C 是顶级数组的元素)

一个
--W
 - X
乙
--是
C
--Z

我想绑定WXYZ 的属性。 实现这一目标的推荐方法是什么?我应该使用IValueConverter(这会导致很多代码)吗?

【问题讨论】:

    标签: xaml data-binding windows-8 windows-runtime winrt-xaml


    【解决方案1】:

    如果我正确理解您的问题,我认为您可以在属性中使用 LINQ 的 SelectMany() 并报告 PropertyChanged。像这样的:

    private string[][] _my2DArray;
    public string[][] My2DArray
    {
        get { return _my2DArray; }
        set 
        { 
            _my2DArray = value;
            OnPropertyChanged("My2DArray");
            OnPropertyChanged("InternalArrays");
        }
    }
    
    public IEnumerable<string> InternalArrays
    {
        get { return _my2DArray.SelectMany(a => a); }
    }
    

    您可能需要考虑使用 ObservableCollection 而不是数组来通知集合内的更改。

    【讨论】:

    • 感谢您的回答。但我认为它没有回答我的问题。我的问题是我无法绑定到 all 二级数组中的元素的属性。在其他平台(不是 Windows 8)上,可以使用 XPath 表达式作为绑定(请参阅this answer on SO)。但这在 Win8 上是不可能的。
    猜你喜欢
    • 2018-07-26
    • 2014-03-12
    • 2011-03-28
    • 1970-01-01
    • 2020-03-14
    • 2018-07-29
    • 2013-05-29
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多