سؤال

ولقد حصلت على VehicleViewModel له الفرعية ViewModel من NotesViewModel

public IManageVehicleNotesViewModel NotesViewModel { get; set; }

في تفعيل أول من VehicleViewModel I تفعيل ViewModel الفرعية.

NotesViewModel.Activate();

وتفعيل يدعو طريقة لالحرف الأول عددا من الأوامر، لقد أشار كسر هذه والتي يتم استدعاء.

CreateCommand = new DelegateCommand<object>(OnCreateCommand, CanCreate);

ولكن على الرغم من أن مربعات النص ملزمة للالفرعية مشاهدة (حتى DataContext في مكان) أي من أوامر ملزمة - لقد حاولت أن يدعو RaiseCanExecuteChanged على الأوامر لكنهم لا تعطيل، تمكين أو استدعاء الأساليب كما هو متوقع.

وأنا لا أعرف ما إذا كان لها صلة (مثل مربعات النص ملزمة) ولكن أنا ربط عرض وViewModel باستخدام ResourceDictionary وذلك ...

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:v="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Views"
    xmlns:vm="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Model">
  <DataTemplate DataType="{x:Type vm:ManageVehicleViewModel}">
    <v:ManageVehicleView />
  </DataTemplate>
  <DataTemplate DataType="{x:Type vm:ManageVehicleNotesViewModel}">
    <v:ManageVehicleNotesView />
  </DataTemplate>
</ResourceDictionary>

والأوامر في أعلى مستوى العمل VehicleViewModel.

وقد أي شخص من ذوي الخبرة أي شيء من هذا القبيل؟ هو أمر أقوم به الأشياء؟ أي مساعدة تلقى بامتنان!

وابتهاج،

واندي

هل كانت مفيدة؟

المحلول

هل تؤدي الى الملكية CreateCommand الحدث PropertyChanged؟ إذا لم يحدث ذلك، لن يتم إخطار UI عند تعيين ذلك ...

وحاول استخدام أداة مثل سنوب للتحقق ما إذا كان تم تعيين الخاصية Command زر

نصائح أخرى

هل هذا وتحقق الإخراج إلى معرفة ما يجري على:

<UserControl …
     xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase" />

<Button Command="{Binding MyCommand, 
                  diagnostics:PresentationTraceSources.TraceLevel=High}" … />

وينبغي أن يقدم ما يعترض انها في الواقع محاولة لربط، وما تحقق إطار الإخراج الخاص بك بينما كنت تستخدم لمعرفة ما يجري مع ذلك ملزمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top