我偏离了此处所示的方法(我无法开始工作)。
绑定数据在I implemented MVVM as per this question
时有用我遵循了一个教程(我已经失去了链接),为我的DataGrid创建数据绑定。
该过程涉及从我的模型创建数据源,这允许我将DataGrid拖到我的窗口上。
当我运行它时,DataGrid在窗口上呈现为空,我知道有一些事实需要进入它。
以下是代码:
<Page.Resources>
<CollectionViewSource x:Key="campaignViewSource" d:DesignSource="{d:DesignInstance {x:Type Models:Campaign}, CreateList=True}"/>
</Page.Resources>
<DataGrid x:Name="campaignDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Grid.Row="1" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="clientColumn" Binding="{Binding Client}" Header="Client" Width="SizeToHeader"/>
<DataGridTemplateColumn x:Name="dateSentColumn" Header="Date Sent" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding DateSent, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="idColumn" Binding="{Binding Id}" Header="#" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="nameColumn" Binding="{Binding Name}" Header="Name" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="emailAddressColumn" Binding="{Binding EmailAddress}" Header="Email Address" Width="SizeToHeader"/>
</DataGrid.Columns>
</DataGrid>
根据我从中构建的教程,我不需要做任何事情来完成这项工作。那么我错过了什么?
我该怎么办?
答案 0 :(得分:0)
尝试将ItemsSource
属性绑定到CollectionViewSource
:
<DataGrid x:Name="campaignDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True"
ItemsSource="{Binding Source={StaticResource campaignViewSource}}" Grid.Row="1" RowDetailsVisibilityMode="VisibleWhenSelected">
您还需要将Source
的{{1}}属性设置为某个源集合:
CollectionViewSource
拖放式方法实际上并不是做某事或学习的好方法。如果你想成为一名成功的WPF开发人员,你应该学习XAML和MVVM。