public void SerializeParameters(UIElementCollection parameterGrid, string shaderName) { ShaderName = shaderName; ClearLists(); foreach (var p in parameterGrid) { if (p is BoolView) { var vm = (p as BoolView).DataContext as BoolViewModel; BoolList.Add(new SerializeHolder <bool>(vm.ShaderName, vm.ContentValue)); } else if (p is IntView) { var vm = (p as IntView).DataContext as IntViewModel; IntList.Add(new SerializeHolder <int>(vm.ShaderName, vm.ContentValue)); } else if (p is FloatView) { var vm = (p as FloatView).DataContext as FloatViewModel; FloatList.Add(new SerializeHolder <float>(vm.ShaderName, vm.ContentValue)); } else if (p is Float2View) { var vm = (p as Float2View).DataContext as Float2ViewModel; Float2List.Add(new SerializeHolder <Float2>(vm.ShaderName, vm.ContentValue)); } else if (p is Float3View) { var vm = (p as Float3View).DataContext as Float3ViewModel; Float3List.Add(new SerializeHolder <Float3>(vm.ShaderName, vm.ContentValue)); } else if (p is Float4View) { var vm = (p as Float4View).DataContext as Float4ViewModel; Float4List.Add(new SerializeHolder <Float4>(vm.ShaderName, vm.ContentValue)); } else if (p is Texture2DView) { var vm = (p as Texture2DView).DataContext as Texture2DViewModel; Texture2DList.Add(new SerializeHolder <string>(vm.ShaderName, vm.FileName)); } } var ofd = new SaveFileDialog(); string baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory; ofd.InitialDirectory = baseDirectory; ofd.DefaultExt = ".xml"; ofd.Filter = "XML files (.xml)|*.xml"; if (ofd.ShowDialog() == true) { using (var f = File.Create(ofd.FileName)) { XmlSer.Serialize(f, this); } } }
private void ClearLists() { BoolList.Clear(); IntList.Clear(); FloatList.Clear(); Float2List.Clear(); Float3List.Clear(); Float4List.Clear(); }