【问题标题】:WPF Binding: cannot resolve symbol due to unknown datacontextWPF 绑定:由于未知数据上下文而无法解析符号
【发布时间】:2013-06-05 09:48:59
【问题描述】:

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

由于未知数据上下文,无法解析符号“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");
        }
    }
}

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

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

【问题讨论】:

  • 什么是CompareWindow(ObvervableCollection&lt;Part&gt; parts)?这应该是 MyWindow 的构造函数吗?
  • 是的,我更正了。
  • @Egi:完成。那堂课没什么特别的。

标签: c# wpf data-binding wpfdatagrid


【解决方案1】:

设计器无法将ObvervableCollection&lt;Part&gt; 实例提供给 MyWindow 构造函数,因为它不知道如何操作。所以你的构造函数永远不应该在设计器中被调用。 这就是为什么设计师“由于未知的数据上下文而无法解析符号'DoImport'”。 Visual Studio 中的设计器需要一个无参数的默认构造函数才能正常工作。

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

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多