Я изучаю шаблон WPF MVVM. Я застрял в Binding CurrentCell
из datagrid
. В принципе мне нужен индекс строки и индекс столбца текущей ячейки.Как привязать CurrentCell в WPat datagrid с использованием шаблона MVVM
<DataGrid AutoGenerateColumns="True"
SelectionUnit="Cell"
CanUserDeleteRows="True"
ItemsSource="{Binding Results}"
CurrentCell="{Binding CellInfo}"
Height="282"
HorizontalAlignment="Left"
Margin="12,88,0,0"
Name="dataGrid1"
VerticalAlignment="Top"
Width="558"
SelectionMode="Single">
Вот мой ViewModel
private User procedureName = new User();
public DataGridCell CellInfo
{
get { return procedureName.CellInfo; }
//set
//{
// procedureName.CellInfo = value;
// OnPropertyChanged("CellInfo");
//}
}
Вот моя модель
private DataGridCell cellInfo;
public DataGridCell CellInfo
{
get { return cellInfo; }
//set
//{
// cellInfo = value;
// OnPropertyChanged("CellInfo");
//}
}
И в моем ViewModel CellInfo
всегда null
. Я не могу получить значение от currentcell
в datagrid
. Пожалуйста, дайте мне знать, как получить CurrentCell
в ViewModel.
if (CellInfo != null)
{
MessageBox.Show("Value is" + CellInfo.Column.DisplayIndex.ToString());
}
CurrentCell = "{Binding CellInfo}" - Попробуйте установить эту вещь в режим привязки в двух направлениях. –
Почему вам нужна информация о ячейке, не можете ли вы привязаться к выбранному элементу сетки данных и извлекать нужные вам свойства? Кроме того, вызов Messagebox из вашей viewmodel будет создавать проблемы. Это было просто для тестирования? –
Спасибо. Я попробовал с SelectedItem.Even selecteditem null в моем представлении model.yes messagebox предназначен только для тестирования. –