Я использую элемент управления сеткой, полученный из сетки Telerik, чтобы добавить CurrentSelection DependencyProperty, чтобы я мог использовать его в режиме Mvvm.DependencyProperty СвойствоChangedCallback не запускается, когда значение null установлено
public static readonly DependencyProperty CurrentSelectionProperty = DependencyProperty.Register(
"CurrentSelection",
typeof(ObservableCollection<object>),
typeof(TelerikGrid),
new PropertyMetadata(new ObservableCollection<object>(), **DependencyPropertyDebugger**));
Это, кажется, довольно хорошо работать каждые другие места, которые я использовал его ...
Теперь мы добавили ContextMenu в нашей сетке, щелкните правой кнопкой мыши и выбора печати, довольно просто ... Он по-прежнему кажется, работать нормально.
<MenuItem Command="{Binding CommandPrintReport}">
</MenuItem>
Это MenuItem теперь шаблонный добавить кнопку «Параметры», используемую для открытия диалогового окна.
<MenuItem.HeaderTemplate>
<DataTemplate>
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="Print selection" Margin="0,0,15,0"/>
<Button Style="{StaticResource MenuItemButton}" DockPanel.Dock="Right" Command="{x:Static NS:ViewModel.CommandReportOptions}">
<Image Source="{Binding Source={x:Static ImagePath:General.ConfigLite}}" />
</Button>
</DockPanel>
</DataTemplate>
</MenuItem.HeaderTemplate>
При нажатии на эту кнопку, вместо того, чтобы напечатать выбор, свойство зависимостей, кажется, устанавливается в нуль, так что мы теряем выбор. При взгляде на Имущество измененной функции обратного вызова, с DependencyPropertyDebugger, я могу видеть, значение устанавливается в какой-то отбор, но это не срабатывает, когда он установлен обратно в нуль ...
private static void DependencyPropertyDebugger(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Console.WriteLine("{0}.{1}: {2}", d.DependencyObjectType.Name, e.Property.Name, e.NewValue);
}
Моих команд
public ICommand CommandPrintReport { get; private set; }
public static ICommand CommandReportOptions { get; set; }
я оценил бы некоторую помощь Спасибо
Как устанавливается CurrentSelection? –
Использование привязки для свойства зависимостей: CurrentSelection = "{Binding CurrentSelection, UpdateSourceTrigger = PropertyChanged, Mode = TwoWay}" – JCorriveau