数据绑定导致WPF设计器错误

时间:2010-01-29 17:56:37

标签: c# wpf data-binding designer

有谁知道为什么这个绑定会导致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 个答案:

答案 0 :(得分:2)

我敢打赌PopulateClientList()中有一些代码在从AppDomain运行时失败,设计者正在运行代码。

如果您正在从文件加载XML,那么物理路径可能不在相同的相对位置或类似的位置。

答案 1 :(得分:1)

尝试用“clr-namespace:MyAppNamespace; assembly =”添加程序集替换include语句。你不必输入程序集名称。这是视觉工作室的一个错误。