Привязка в XAML работает только для свойств, а не для полей
I tried Binding in XAML, while binding i encountered this issue <pre lang="c#"> public class StudentsCollectionViewModal { public List<Author> studentCollection = new List<Author>(); public StudentsCollectionViewModal() { studentCollection = LoadCollectionData(); } private List<Author> LoadCollectionData() { List<Author> authors = new List<Author>(); authors.Add(new Author() { ID = 101, Name = "Mahesh Chand", BookTitle = "Graphics Programming with GDI+", DOB = new DateTime(1975, 2, 23), IsMVP = false }); authors.Add(new Author() { ID = 201, Name = "Mike Gold", BookTitle = "Programming C#", DOB = new DateTime(1982, 4, 12), IsMVP = true }); authors.Add(new Author() { ID = 244, Name = "Mathew Cochran", BookTitle = "LINQ in Vista", DOB = new DateTime(1985, 9, 11), IsMVP = true }); return authors; } public class Author { public int ID { get; set; } public string Name { get; set; } public DateTime DOB { get; set; } public string BookTitle { get; set; } public bool IsMVP { get; set; } } } }
вот код XAML, где я попробовал привязку
<UserControl.DataContext> <viewModal:StudentsCollectionViewModal></viewModal:StudentsCollectionViewModal> </UserControl.DataContext> <Grid Background="SkyBlue"> <DataGrid Margin="10" x:Name="datagrid" ItemsSource="{Binding studentCollection}" RowBackground="LightYellow" AlternatingRowBackground="LightSkyBlue" AlternationCount="2" AllowDrop="True" > </DataGrid> </Grid>
согласно моему ожиданию, привязка не сработала , но когда я изменил поле "studentCollection" на свойства
public List<Author> studentCollection = new List<Author>();
к
private List<Author> _studentCollection; public List<Author> studentCollection { get { return _studentCollection; } set { _studentCollection = value; } }
это сработало.
весь модифицированный класс
public class StudentsCollectionViewModal { // public List<Author> studentCollection = new List<Author>(); private List<Author> _studentCollection; public List<Author> studentCollection { get { return _studentCollection; } set { _studentCollection = value; } } public StudentsCollectionViewModal() { studentCollection = LoadCollectionData(); } private List<Author> LoadCollectionData() { List<Author> authors = new List<Author>(); authors.Add(new Author() { ID = 101, Name = "Mahesh Chand", BookTitle = "Graphics Programming with GDI+", DOB = new DateTime(1975, 2, 23), IsMVP = false }); authors.Add(new Author() { ID = 201, Name = "Mike Gold", BookTitle = "Programming C#", DOB = new DateTime(1982, 4, 12), IsMVP = true }); authors.Add(new Author() { ID = 244, Name = "Mathew Cochran", BookTitle = "LINQ in Vista", DOB = new DateTime(1985, 9, 11), IsMVP = true }); return authors; } public class Author { public int ID { get; set; } public string Name { get; set; } public DateTime DOB { get; set; } public string BookTitle { get; set; } public bool IsMVP { get; set; } } }
Поэтому у меня этот запрос привязки в XAML работает только на свойствах, а не на полях.
Что я уже пробовал:
Я попробовал поискать в google, но не смог найти ни одной вмятины, поэтому попробовал разобраться в своем приложении XAML.
[no name]
"Я пробовал google, но не смог найти ни одного", - тогда вам нужно улучшить свои навыки google. Хорошо задокументировано, что привязка работает со свойствами, а не с полями.