Я знаю, что этот вопрос неоднократно задавался по-разному на многих веб-сайтах, а также в StackOverFlow, но все ответы, которые я нашел, не помогают мне, если быть точным, я не могу понять их и реализовать в своем приложении.Поэтому я подумал добавить код из моего приложения, чтобы вы, люди, могли мне лучше помочь.
Постановка проблемы: Я использую WPF DataGrid.Я добавил Контекстное меню , и у меня есть 3 варианта Вырезать, Копировать, Вставить.Я использую MVVM для разработки.Я хочу привязать эти параметры к командам в моей ViewModel.Но я не могу сделать то же самое.Опции контекстного меню вообще не привязываются к данным !!!
Это мой Grid-код в XAML:
<custom:DataGrid
x:Name="DataGrid_Standard"
Grid.Row="1" Grid.Column="1"
AutoGenerateColumns="False"
IsSynchronizedWithCurrentItem="True"
Background="Transparent"
ItemsSource="{Binding FullGridData}"
ItemContainerStyle="{StaticResource defaultRowStyle}"
ColumnHeaderStyle="{StaticResource DefaultColumnHeaderStyle}"
Grid.ColumnSpan="2">
Затем у меня есть ContextMenu и стиль для элемента заголовка
<ContextMenu x:Key="columnHeaderMenu">
<MenuItem Command="{Binding CutCommand}"
Header="Test" />
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
</ContextMenu>
<Style TargetType="{x:Type custom:DataGridColumnHeader}" x:Key="DefaultColumnHeaderStyle">
<Setter Property="ContextMenu" Value="{DynamicResource columnHeaderMenu}" >
</Style>
Эта строка идет в моем конструкторе
public Window1()
{
this.DataContext = new AppData();
}
Этот код входит в мой класс AppData:
public class AppData
{
private IList<GridData> fullGridData = new ObservableCollection<GridData>();<br>
public IList<GridData> FullGridData
{
get { return fullGridData; }
set { fullGridData = value; }
}
private DelegateCommand<object> cutCommand;
public DelegateCommand<object> CutCommand
{
get
{
if (cutCommand == null)
{
cutCommand = new DelegateCommand<object>(CutColumn);
}
return cutCommand;
}
}
private void CutColumn(object obj)
{
//some code goes here
}
}
** Я хочу точно знать, где я делаю неправильно ??Почему DataBinding не происходит?Пожалуйста, помогите мне в этом.Пожалуйста, предоставьте мне пример кода или модификации в моем настоящем коде, из которого я могу добиться этого.**