لا يمكن ربط الأمر من عنصر القائمة إلى أمر ملزم

StackOverflow https://stackoverflow.com/questions/889234

  •  23-08-2019
  •  | 
  •  

سؤال

لقد حصلت على XAML التالية:

<Window x:Class="Isolator.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Isolator" Height="394" Width="486" Background="Black" WindowStyle="None" WindowState="Maximized">
    <Window.CommandBindings>
        <CommandBinding Command="Close" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/>
    </Window.CommandBindings>
    <Window.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Stop" Name="StopMenuItem" Click="StopMenuItem_Click" />
            <MenuItem Header="Close" Command="Close"/>

        </ContextMenu>
    </Window.ContextMenu>
    <Grid Loaded="Grid_Loaded">

    </Grid>
</Window>

تحدد عناصر القائمة الإغلاق أنه يجب استخدام الأمر Close. يحدد ربط الأوامر الوثيقة أنه يجب استدعاء CommandBinding_CanExecute ل Canexecute، ولكن لا يتم استدعاء CommandBinding_CanExecute. يتم دائما تعطيل عنصر القائمة إغلاق.

أفترض أن الربط لا يحدث. هل يمكن لأي شخص يفسر السبب؟

إذا كان لديه ما يجب القيام به مع قوائم السياق لا يجري في الشجرة المرئية، كيف تحصل على عمل حولها؟

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

المحلول

هذا البيان Command="Close" لا تفعل أي شيء. أنت تقول أن الأمر هو السلسلة "إغلاق". هذا هو السبب في أنه لا يعمل.

إذا تم تعريف مثيل الأمر الوثيق في النافذة، فاستخدم Command="{Binding Close}". وبعد أو إذا كنت تستخدم ApplicationComMand.Close، فستكون كذلك

Command="{x:Static ApplicationCommands.Close}"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top