0

Подскажите пожалуйста, как мне понять, какой тип ожидается у объектов в xaml? У меня есть следующая строка:

<my:PdfDocumentViewer Width="800" MouseDoubleClick="Control_OnMouseDoubleClick" Name="pdfDocumentViewer1" PdfLoaded=""></my:PdfDocumentViewer>

Как мне понять, какой объект привязывать к PdfLoaded? Буду очень благодарен за помощь

Fa4stik
  • 83
  • 1
    Вам студия должна предложить создать новое событие, согласитесь и она сама вам сгенерирует нужное, а там просто поправьте имя или банально посмотрите что и как. Ну а если надо посмотреть, то в C# коде напишите в любом месте var doc = new PdfDocumentViewer(); doc.Нужное и смотрите что там за тип и что он требует. – EvgeniyZ Dec 19 '22 at 16:29
  • Спасибо огромное! Подскажите пожалуйста, а я могу как-то вызвать объект PdfDocumentViewer, который создаю в xaml? Проблема в том, что у меня есть два класса ScheduleTypeViewModel.cs и ScheduleTypeView.xaml.cs, в котором могу прописать команду this.pdfDocumentViewer1.LoadFromFile(path), но в ScheduleTypeViewModel.cs у меня нет этого объекта. Уже целый день сижу ломаю голову, как его получить – Fa4stik Dec 19 '22 at 16:51
  • 1
    По правилам MVVM (а судя по названиям вида ...ViewModel вы им придерживаетесь), вы не можете, да и не должны хотеть использовать что-либо из View слоя (UI) в C# коде, у вас должно быть строгое разграничение всего на малосвязанные слои. И тут все зависит от контрола, который вы используете, его возможностей. Допустим у некоторых есть и MVVM вариант, и события, например, простая кнопка (Button), вы можете написать <Button Click="..."> и использовать по старинке события (нарушение MVVM), либо вы можете написать <Button Command="{Binding ...}"> и вот вам уже MVVM команды. – EvgeniyZ Dec 19 '22 at 17:19
  • 1
    Поэтому анализируйте используемый вами компонент и смотрите как с ним взаимодействовать. Допустим старые события можно привязать к командам, будет вам все по правилам MVVM. Либо вы можете сделать обертку, или внедряемые свойства, которые будут нужное вам отдавать VM слою без нарушений MVVM. Ну а если вы не используете MVVM, то просто задайте имя (вы его уже задали - pdfDocumentViewer1) и используйте его потом в коде окна. – EvgeniyZ Dec 19 '22 at 17:21
  • 1
    Понял, спасибо огромное! Сейчас буду смотреть какие события отвечают за просмотр pdf – Fa4stik Dec 19 '22 at 17:47

0 Answers0