के लिए सदस्यता लेने में लैम्ब्डा अभिव्यक्ति को परिवर्तित नहीं कर सकता है, मैं आरएक्स का उपयोग कर wpf में मानक ड्रैग और ड्रॉप छवि को लागू करने का प्रयास कर रहा हूं।त्रुटि IObservable <Point>
var mouseDown = from evt in Observable.FromEventPattern<MouseButtonEventArgs>(image, "MouseLeftButtonDown")
select evt.EventArgs.GetPosition(image);
var mouseUp = Observable.FromEventPattern<MouseButtonEventArgs>(this, "MouseLeftButtonUp");
var mouseMove = from evt in Observable.FromEventPattern<MouseEventArgs>(this, "MouseMove")
select evt.EventArgs.GetPosition(this);
var q = from startLocation in mouseDown
from endLocation in mouseMove.TakeUntil(mouseUp)
select new Point
{
X = endLocation.X - startLocation.X,
Y = endLocation.Y - startLocation.Y
};
q.ObserveOn(SynchronizationContext.Current).Subscribe(point =>
{
Canvas.SetLeft(image, point.X);
Canvas.SetTop(image, point.Y);
});
मैं त्रुटि त्रुटि Cannot convert lambda expression to type 'System.IObserver<System.Windows.Point>' because it is not a delegate type
मैं क्या याद आ रही है मिल सकता है?
आपका कोड मेरे लिए ठीक काम करता है। क्या आपने आरएक्स-मेन और आरएक्स-डब्ल्यूपीएफ का संदर्भ दिया है? – Phil
हाँ मैंने दोनों का संदर्भ दिया है। –
कृपया जांचें कि आपका लक्ष्य प्लेटफ़ॉर्म .NET 4 क्लाइंट प्रोफ़ाइल कहता है और यदि ऐसा है तो इसे .NET 4. – Christoph