0

我有一个 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 以从字典中删除所选项目的任何建议?

4

0 回答 0