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