Привязка данных вызывает ошибку дизайнера WPF - PullRequest
1 голос
/ 29 января 2010

Кто-нибудь знает, почему эта привязка вызывает ошибку в конструкторе WPF? («Исключение было сгенерировано целью вызова.»)

XAML (частично):

<Window xmlns:local="clr-namespace:MyAppNamespace">
    <DataGrid ItemsSource="{Binding Source={x:Static local:Clients.Instance},
                                    Path=ClientList}" />
</Window>

C #:

namespace MyAppNamespace
{
    public sealed class Clients
    {
        // Singleton pattern
        public static readonly Clients Instance = new Clients();
        private Clients() { }
        static Clients()
        {
            clientList = new ObservableCollection<Client>();
            PopulateClientList();
        }

        private static ObservableCollection<Client> clientList;
        public static ObservableCollection<Client> ClientList
        {
            get { return clientList; }
            set { clientList = value; }
        }

        public static void PopulateClientList()
        {
            // .. load client data from xml
        }

        public class Client
        {
            // ... expose public properties for fields in provided xml element
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Держу пари, что внутри PopulateClientList () есть некоторый код, который не работает при запуске из домена приложений, из которого дизайнер запускает код.

Если вы загружаете XML из файла, возможно, физический путь не находится в той же относительной папке, или что-то в этом роде.

1 голос
/ 29 января 2010

попробуйте заменить оператор включения на "clr-namespace: MyAppNamespace; assembly =", добавив сборку. Вам не нужно вводить имя сборки. это ошибка с визуальной студией.

...