在Dictionary<>中右键单击DataGrid中的删除在WPF中

时间:2012-12-02 09:15:51

标签: c# wpf dictionary datagrid mouseevent

我有一个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&lt;&gt;没有索引。我无法在索引后删除选定项目。我不能使用OrderedDictionary,因为我必须将一个类加载到字典中。

有关如何绑定XAML以从Dictionary中删除所选项目的任何人的建议吗?

0 个答案:

没有答案