0

下面的 Binding 是在一个名为 IEnumerable 的活动上。问题是,在我的 xaml 中......我只想输出数组中的第一个元素。你能按照这些思路做点什么吗:

<Run Text="{Binding activity[0].created_by.name}"></Run>

或者您是否必须为活动 IEnumerable 数组链接另一个数据模板?

这是 ActivityStream 类的属性(我现在注意到它是一个 List..hmm。)

...
    [DataMember]
    public List<object> activity { get; set; }
...

这是我做 PropertyChanged yada yada 的地方

    public IEnumerable<JamesStream> activityStream;

...

    private async void LoadActivityStreamSection()
    {
        activityStreamRepository = new JamesStreamRepository();
        var tempActivityStream = await activityStreamRepository.GetAllBySpaceId(space.space_id);

        activityStream = tempActivityStream;
        ActivityStream = null;

        //The Activitiy Stream has a property which is of type List<object> called activity
        // In my xaml I just want to be outputting the 1st entry of the List<object> property .created_by_name
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChangedEventHandler tempEvent = PropertyChanged;

        if (tempEvent != null)
        {
            // property changed
            tempEvent(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    public IEnumerable<JamesStream> ActivityStream
    {
        get
        {
            return activityStream;
        }
        set
        {
            if (activityStream != value)
            {
                OnPropertyChanged();
            }
        }
    }
4

2 回答 2

0

如果您的 IEnumerable 具有 .First 属性,您可以附加到该属性吗?

于 2013-10-19T17:44:15.710 回答
0

你的代码工作......通常:)。

你能展示你如何填充你的收藏吗?我认为这可能是因为您没有触发 INotifyPropertyChanged (或类似 INotify 的集合)事件

于 2013-10-19T17:49:29.723 回答