2017-01-31 5 views
0

В одном из наших XAML файлов я связывающиеся пользовательский метод кнопки печати:WPF Command Связывание кажется сбой в некоторых случаях

<UserControl.CommandBindings> 
    <CommandBinding Command="ApplicationCommands.Save" x:Name="SaveCmdBinding" 
        Executed="HandleSaveCmdBindingExecuted" /> 
    <CommandBinding Command="ApplicationCommands.Print" x:Name="PrintCmdBinding1" 
        Executed="HandlePrintCmdBindingExecuted" /> 
</UserControl.CommandBindings> 

Метод HandlePrintCmdBindingExecuted содержит строку:

dlg.UserPageRangeEnabled = true; 

So он позволяет пользователю выбирать диапазон страниц.

Возможно, диалоговое окно печати открывается с отключенным выбором диапазона страниц. Это всегда происходит, если я щелкнул где-нибудь внутри отчета, а затем нажмите кнопку печати. (В окне вверху отображаются кнопки, и отчет отображается ниже.)

Что случилось?

+0

Может быть, вопрос времени. Попробуйте использовать 'PreviewExecuted' вместо' Executed'. – wkl

+0

Спасибо, но это не решает. Вместо этого кнопка печати становится серым (unclickable), если я не нажимаю на отчет, тогда он становится кликабельным, и я не могу выбрать диапазон страниц. – Entwickler582

+0

Кажется, что HandlePrintCmdBindingExecuted не вызывается после нажатия на отчет. Как будто привязка команды была перезаписана. – Entwickler582

ответ

0

Мне удалось решить эту проблему, используя ApplicationCommands.PrintPreview вместо ApplicationCommands.Print.

Я не уверен, в чем причина, почему он не работал с ApplicationCommands.Print, но, возможно, это было потому, что одна и та же команда использовалась для другой цели где-то еще в программе.