wpf组合框键/值字典

时间:2012-04-05 21:54:42

标签: wpf dictionary combobox

我有一个Combobox用于选择文件扩展名,例如“Images,(* .png,* .jpg)”。我想从Dictionary键/值对中获取数据。我为第一部分添加了字符串,例如“Images”和扩展我添加了一个列表,因为可以有多个。我在显示SaveFileDialog或OpenFileDialog时使用此数据。如何将这些扩展用作SaveFileDialog的过滤器?你能帮忙吗?

ExtensionCollection = new Dictionary<string, IList<String>>();
ExtensionTypeCollecction = new List<String>();
Extensions = new List<IList<String>>();
perExtension = new List<String>();
perExtension.Add("*.png");
perExtension.Add("*.jpg");
Extensions.Add(perExtension);
ExtensionTypeCollecction.Add("Images");
ExtensionCollection.Add("Images", perExtension);

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为这就是你所追求的:

var d = new Dictionary<string, IList<string>>();
d.Add("Images", new List<string>{ "*.png", "*.jpg" });

var key = "Images";
var extensions = d["Images"];

var filter = key + "|" + string.Join(";", extensions.ToArray());

给予

filter = "Images|*.png;*.jpg"

或者你可以这样做

var extString = string.Join(";", extensions.ToArray());
var filter = key +" (" + extString + ")|" + extString;

导致

filter = "Images (*.png;*.jpg)|*.png;*.jpg"

,如果需要,您当然可以添加常用的"|All files (*.*)|(*.*)"过滤器选项。

答案 1 :(得分:0)

这有帮助吗?

   foreach (string ext in Dictionary["images"])
   {
       Debug.WriteLine(ext);
   }