我有一个 DataGrid,它从字典中接收它的值:
public class Files
{
public string File { get; set; }
public string Duration { get; set; }
public string Status { get; set; }
}
Dictionary<Files, string> files = new Dictionary<Files, string>();
DataGrid.ItemsSource = files.Keys;
像这样以编程方式添加值:
private void AddFilesList(string addsrc, string addduration, string addstatus, string path)
{
files.Add(new Files
{
File = addsrc,
Duration = addduration,
Status = addstatus,
}, path
);
DataGrid.Items.Refresh();
}
现在我正在尝试将右键单击/删除添加到 DataGrid,这将从 Dictionary 中删除选定的值。
我使用 MVVM 模式来删除这样的值,这里是 XAML:
<Grid>
<Grid DataContext="{Binding Source={StaticResource EmpVM}}">
<DataGrid AutoGenerateColumns="False" Height="287"
HorizontalAlignment="Left" Margin="23,12,0,0"
Name="DataGrid" VerticalAlignment="Top" Width="657"
SelectedIndex="{Binding Path=RecordIndex,Mode=TwoWay}">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Command="{Binding DeleteCommand}"
CommandParameter="{Binding RecordIndex}" Header="Delete"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</Grid>
现在的问题是“Selectedindex”反映了所选值的索引,而Dictionary<>没有索引。这我无法删除索引后的选定项目。我也不能使用 OrderedDictionary,因为我必须将一个类加载到字典中。
关于如何绑定 XAML 以从字典中删除所选项目的任何建议?