Имеется DataGrid
. Есть проблемы с выгрузкой содержимого в XML.
Класс для сериализации
[Serializable]
public class Buttons
{
public bool VisibilityBut { get; set; }
public string Name { get; set; }
public string PathImag { get; set; }
public string PathExe { get; set; }
}
Если делаю сериализацию так
XmlSerializer formatter = new XmlSerializer(typeof(Buttons));
using (FileStream fs = new FileStream(@"XML.XML", FileMode.OpenOrCreate))
formatter.Serialize(fs, DataGrid1);
то файл создаётся пустым и возникает исключение
System.InvalidOperationException: "Ошибка при создании документа XML." InvalidCastException`: Не удалось привести тип объекта "System.Windows.Controls.DataGrid" к типу "ПанельКнопок.Buttons".
А если так делаю:
if (DataGrid1.ItemsSource == null) return;
var serializer = new XmlSerializer(typeof(List<Buttons>));
var writer = new StreamWriter("XML.xml");
serializer.Serialize(writer, DataGrid1.ItemsSource as List<Buttons>);
writer.Close();
то в файле создается только заголовок XML, и всё остальное пусто, путем подбора типов, решение такое.
ObservableCollection<ButtonEIIS> collection = null;
private void butSaveXML_Click(object sender, RoutedEventArgs e) // нажали кн. "Сохранить в XML"
{
var serializer = new XmlSerializer(typeof(ObservableCollection<Buttons>));
using (FileStream fs = new FileStream(@"XML.XML", FileMode.OpenOrCreate))
{
serializer.Serialize(fs, DataGrid1.ItemsSource as ObservableCollection<Buttons>);
}
}
в XAML привязка такая
<DataGrid x:Name="DataGrid1" Margin="10,171,10,52" FontSize="14" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Вид" Binding="{Binding VisBut}"/>
<DataGridTextColumn Header="Надпись на кнопке (папка подсистемы)" Binding="{Binding NameSubEIIS}"/>
<DataGridTextColumn Header="Полный путь к картинке" Binding="{Binding PathPNG}"/>
<DataGridTextColumn Header="Полный путь к запускаемому приложению" Binding="{Binding PathEXE}"/>
</DataGrid.Columns>
</DataGrid>
Cуть проблемы в том что у меня есть три usercontrol-а для трех фигур, два из них отображаются, а один нет(обведен красным, в контроле должно быть видно...
В таблице есть две колонки, обе они имеют тип DataGridComboBoxColumnВ первой колонке надо показывать выпадающий список из одной коллекции, во второй...
Необходимо защитить данные которые используются и генерируются программой в процессе работыЕсть идея использовать запароленную базу данных...