我有一个使用wcf webservice的wpf应用程序。它是我的web服务和应用程序,所以我可以对任何一方进行更改。在由Visual Studio自动生成的Reference.cs文件中,它将此代码用于属性更改事件:
[System.Runtime.Serialization.DataMemberAttribute()]
public string Value {
get {
return this.ValueField;
}
set {
if ((object.ReferenceEquals(this.ValueField, value) != true)) {
this.ValueField = value;
this.RaisePropertyChanged("Value");
}
}
}
对于弦乐虽然我真正想要的是这个:
[System.Runtime.Serialization.DataMemberAttribute()]
public string Value {
get {
return this.ValueField;
}
set {
if ((object.ReferenceEquals(this.ValueField, value) != true)) {
if (this.ValueField != value)
{
this.ValueField = value;
this.RaisePropertyChanged("Value");
}
}
}
}
这样,如果值相同,则属性更改事件不会消失。为什么这是一个问题是因为我听了一个文本框的OnPreviewTextInput并以编程方式更改了值,然后事件发生了两次,一次因为我改了它而一次因为wpf通过绑定改变了它。
谢谢,
答案 0 :(得分:0)
如果您同时控制服务器和客户端,则可以在单独的程序集中定义类型,然后从两个项目中引用它。
在WCF引用添加对话框高级设置中,您可以告诉它重用类型,然后它将使用客户端上的公共程序集中存在的数据对象的任何实现。