Ich habe ein Datagrid, die in jeder Zeile wie diese eine Löschtaste enthält:Wie die CurrentRow von Datagrid in Ansichtsmodell erhalten
<Button Command="{Binding DeleteRowCriterionCommand}">Delete</Button>
Aber ich weiß nicht, wie die currentItem Eigenschaft zu erhalten, ohne das Datagrid zu verwenden .name
<!-- 2ND : CRITERIA -->
<Grid>
<DataGrid ItemsSource="{Binding UserCriteria, Mode=TwoWay}" SelectedItem="{Binding SelectedItemDG, Mode=TwoWay}" AutoGenerateColumns="False">
<DataGrid.Columns>
<!--TEXTBOX FOR SQL VALUES-->
<DataGridTemplateColumn Header="SQLValue" Width="600">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- BUTTON FOR DELETING -->
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding DeleteRowCriterionCommand}">Delete</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
ich MVVMLight bin mit, so weiß ich, wie mein Befehl an mein Viewmodel zu verbinden, aber das einzige, was fehlt den Index der Zeile, wo ich auf die Schaltfläche klicken. Diese
ist die Funktion von DataGrid.Name mit:
public void DeleteRowCriterion()
{
// I would like to replace the first line by not using DataGridName
// int currentRowIndex = DataGridName.Items.IndexOf(CriteriaDG.CurrentItem);
// UserCriteria.RemoveAt(currentRowIndex);
}
Wenn jemand weiß, wie es zu tun ist, werde ich das schätzen!
Könnten Sie Bitte fügen Sie das komplette XAML für '
hinzufügen Ich habe meinen Beitrag bearbeitet, indem ich das gesamte' DataGrid' hinzugefügt habe. In der Tat habe ich 'CommandParameter' nicht verwendet, ich kannte diese Eigenschaft nicht – Destunk
Sie müssen einige Befehlsparameter hinzufügen: [Probieren Sie dieses Beispiel] (http://stackoverflow.com/questions/12371253/how-do-i -pass-a-variable-as-a-command-Parameter) –