C# WPF绑定:由于未知的datacontext,无法解析符号
我尝试在DataGrid中绑定一个复选框,但在designer中,我将鼠标悬停在C# WPF绑定:由于未知的datacontext,无法解析符号,c#,wpf,data-binding,wpfdatagrid,C#,Wpf,Data Binding,Wpfdatagrid,我尝试在DataGrid中绑定一个复选框,但在designer中,我将鼠标悬停在DoImport 由于未知的datacontext,无法解析符号“DoImport” 我的代码是 <Window x:Class="MyWindow"> <Grid> <DataGrid x:Name="MyGrid" ItemsSource="{Binding}"> <DataGrid.Columns> <Da
DoImport
由于未知的datacontext,无法解析符号“DoImport”
我的代码是
<Window x:Class="MyWindow">
<Grid>
<DataGrid x:Name="MyGrid" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Import"
Binding="{Binding Path=DoImport,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
public partial class MyWindow : Window, INotifyPropertyChanged {
public MyWindow(ObvervableCollection<Part> parts) {
_parts = parts;
MyGrid.DataContext = _parts;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string name) {
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
private ObservableCollection<Part> _parts;
public ObservableCollection<Part> Parts {
get { return _parts; }
set
{
_parts = value;
OnPropertyChanged("Parts");
}
}
}
设计器无法向MyWindow构造函数提供
ObvervableCollection
实例,因为它不知道如何提供。因此,永远不要在设计器中调用构造函数。
这就是为什么设计器“由于未知的datacontext而无法解析符号'DoImport'。
VisualStudio中的设计器需要一个无参数的默认构造函数才能正常工作
也许你应该看看:
或者更好的是。。。让blend为您创建设计示例数据。什么是
CompareWindow(ObvervableCollection零件)
?这是MyWindow的构造函数吗?是的,我更正了。@Egi:Done。那门课没什么特别的。退房
public class Part {
public bool DoImport { get; set; }
}