Ошибка привязки ObservableCollection для переносимой библиотеки

У меня есть view-модель, присоединенная к классу представления, свойства элемента управления которого приводят к ошибке привязки 40. Представление - это пользовательский элемент управления, действующий как ItemsControl.

    <ItemsControl ItemsSource="{Binding TaskList}" >

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <local:TaskItemUserControl />
            </DataTemplate>
        </ItemsControl.ItemTemplate>

    </ItemsControl>

</Grid>

ItemsSource связан с ObservableCollection в модели представления.

using Helpers.System;
using System.Collections.ObjectModel;

namespace ApplicationCore
{
    /// <summary>
    /// View model container is a list view for task list item controls
    /// </summary>
    public class TaskListViewModel : BaseViewModel
    {
        #region properties

        /// <summary>
        /// Runtime data to show in the task control list
        /// </summary>
        public ObservableCollection<TaskItemViewModel> TaskList =
            new ObservableCollection<TaskItemViewModel>();

        #endregion
    }
}

При переходе на страницу, на которой размещается ItemsControl, появляется ошибка привязки.

System.Windows.Data Error: 40 : BindingExpression path error: 'TaskList' property not found on 'object' ''TaskListViewModel' (HashCode=3416986)'. BindingExpression:Path=TaskList; DataItem='TaskListViewModel' (HashCode=3416986); target element is 'ItemsControl' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')

Источник имел обыкновение существовать в одном шаблоне приложения WPF, созданном в Visual Studio 2015, вероятно, для.NET 4.6.1. Этот источник работал. Свойство является общедоступным, и создается в модели представления.

После перемещения модели представления в переносимую библиотеку C# с таргетингом на 4.5.1 в Visual Studio 2017 появилась ошибка привязки. В результате вызов ObservableCollection.Add в потоке диспетчера Application.Current не приводит к обновлению ItemsControl. Проект приложения представляет собой шаблон WPF, созданный в Visual Studio 2017 с целью.NET 4.6.1. Это включает в себя WindowsBase, PresentationCore и т. Д. DLL-файлы существуют в bin, обновлены и правильно разрешены во время выполнения. Никакие исключения не появляются в консоли отладки.

Вызывает ли разделение сборки проблему, о которой я не знаю? Существуют ли изменения в среде, которая могла вызвать это (компилятор VC?) Или инфраструктуру (IEnumerable vs ObservableCollection), даже несмотря на то, что платформа.NET одинакова (я предполагаю обратную совместимость как минимум).

0 ответов

Другие вопросы по тегам