gpt4 book ai didi

c# - WPF 绑定(bind) : cannot resolve symbol due to unknown datacontext

转载 作者:行者123 更新时间:2023-11-30 17:04:55 32 4
gpt4 key购买 nike

我尝试在 DataGrid 中绑定(bind)一个 CheckBox,但在设计器中我将鼠标悬停在 DoImport

cannot resolve symbol 'DoImport' due to unknown datacontext

我的代码是

<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");
}
}
}

_parts 是填充 DataGrid 的项的集合。 Part 类是:

public class Part {
public bool DoImport { get; set; }
}

最佳答案

设计师无法提供 ObvervableCollection<Part>实例到 MyWindow 构造函数,因为它不知道如何。所以你的构造函数不应该在设计器中被调用。这就是为什么设计者“由于数据上下文未知而无法解析符号‘DoImport’”的原因。visual studio 中的设计人员需要一个无参数的默认构造函数才能正常工作。

也许你应该检查一下: http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/30/sample-data-in-the-wpf-and-silverlight-designer.aspx或者更好……让 blend 为您创 build 计样本数据。

关于c# - WPF 绑定(bind) : cannot resolve symbol due to unknown datacontext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16936710/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com