绑定到属性会引发异常

时间:2015-10-05 00:27:28

标签: c# wpf data-binding

我想绑定到可以在静态Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If My.Computer.Network.Ping("192.168.1.1") Then MsgBox("Connection ok") Else MsgBox("No Connection") End If End Sub 类中找到的Patients静态属性。这样做会引起争议。

DatabaseService

这里我绑定到列表

namespace MyProject.Database{
    static class DatabaseService{
        private static ObservableCollection<Patient> _patients;
        public static ObservableCollection<Patient> Patients {
            get {
                return _patients;
            }
            set {
                if(_patients != value) {
                    _patients = value;
                    StaticPropertyChanged(null,new PropertyChangedEventArgs("Patients"));
                }
            }
        }
    }
}

当我尝试绑定到不同的属性时,它可以正常工作,只需重命名<Controls:FilterableComboBox xmlns:db="clr-namespace:MyProject.Database" ItemsSource="{Binding Path=(db:DatabaseService.Patients)}"/> Exception thrown: 'System.ArgumentException' in mscorlib.dll ("Cannot bind to the target method because its signature or security transparency is not compatible with that of the delegate type.") 属性即可解决问题。是否有一些我应该警惕的名字冲突?

例如,有一个名称空间Patients

编辑: MyProject.PatientsDatabaseService命名空间中,当我尝试在MyProject.Database命名空间中存在的类上绑定它时,它可以使用no问题

MyProject.Patients

使用以下标记

namespace MyProject.Patients{
    class X{
        private static ObservableCollection<Patient> _patients;
        public static ObservableCollection<Patient> Patients {
            get {
                return _patients;
            }
            set {
                if(_patients != value) {
                    _patients = value;
                    StaticPropertyChanged(null,new PropertyChangedEventArgs("Patients"));
                }
            }
        }
    }
}

已解决:问题是我的事件<Controls:FilterableComboBox xmlns:pt="clr-namespace:MyProject.Patients" ItemsSource="{Binding Path=(pt:X.Patients)}"/> 存在于类中,但是PatientsChanged是如何绑定到静态属性的第二个版本,所以数据绑定思想它应该订阅事件,但是,事件类型与预期的事件类型不匹配,因此引发了异常

0 个答案:

没有答案