目前我正在直接从我的 xaml.cs 文件加载数据,但我现在想从 XML 文件加载它,因为我目前不知道如何做到这一点,我想知道人们是否可以帮助我,这些是我当前的文件:
enter code here
//Create a viewmodel and add some data to it.
var viewModel = new MyViewModel();
viewModel.Items.Add(new Data() { Name = "Yes", Type = "Yes", Selected = true });
viewModel.Items.Add(new Data() { Name = "Yes", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "Yes", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "Unknown", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "Yes", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "Yes", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "Yes", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
viewModel.Items.Add(new Data() { Name = "No", Type = "No", Selected = true });
//Set the window's datacontext to the ViewModel. This will make binding work.
this.DataContext = viewModel;
}
}
//This is the ViewModel used to bind data
public class MyViewModel
{
//This could just be a List<Data> but ObservableCollection<T> will automatically
//update UI when items are added or removed from the collection.
public ObservableCollection<Data> Items { get; set; }
public MyViewModel()
{
Items = new ObservableCollection<Data>();
}
}
//Just a sample class to hold the data for the grid.
//This is the class that is contained in the ObservableColleciton in the ViewModel
public class Data
{
public string Name { get; set; }
public string Type { get; set; }
public bool Selected { get; set; }
}
//This is an example converter. It looks to see if the element is set to "Yes"
//If so, it returns Visibility.Collapsed. Otherwise, it returns Visibility.Visible.
public class YesToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && value is string)
{
var input = (string)value;
if (string.Equals(input, "Yes", StringComparison.CurrentCultureIgnoreCase))
{
return Visibility.Collapsed;
}
else
{
return Visibility.Visible;
}
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}