У меня есть элемент управления Thumb, который пользователи могут перетаскивать по интерфейсу. При попытке перетаскивания элемента управления появляется исключение «Не найдена цель для метода Thumb_DragDelta». Я думаю, что проблема может заключаться в том, как у меня есть метод, написанный в модели представления, но я не уверен. Кроме того, метод не очень хорош MVVM, потому что он ссылается на представление напрямую, но опять же, не уверен, как его улучшить. Я очень плохо знаком с Caliburn Micro и программированием в целом. Любая помощь приветствуется!
Элемент управления большим пальцем в виде:
<Thumb cal:Message.Attach="[Event DragDelta] = [Action Thumb_DragDelta($view)]"
Background="blue"
HorizontalAlignment="Left"
Width="20"/>
И соответствующий метод в viewmodel:
private Thumb _thumb;
public Thumb MyThumb
{
get
{
return _thumb;
}
set {
_thumb = value;
NotifyOfPropertyChange(() => MyThumb);
}
}
public void Thumb_DragDelta(Views.NaturalDisasterView view, DragDeltaEventArgs e)
{
try
{
var transform = (TranslateTransform)MyThumb.RenderTransform;
transform.X = Math.Max(0, Math.Min(transform.X + e.HorizontalChange, view.ActualWidth - MyThumb.ActualWidth));
view.AfterScene.Clip = new RectangleGeometry() { Rect = new Rect(0, 0, transform.X, view.ActualHeight) };
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}