我在VS2015中有一个WPF项目。
有一个绑定到C#类的xaml表单。我需要双向装订 绑定到简单字符串,整数或另一个对象列表(用于数据网格)的控件都很好用。
但是,我还有5个类型为List的属性。表单可以正常显示这些值-也绑定到单列数据网格。问题是,如果我选择一行并按F2键重命名该值,然后在远离该单元格的位置按Tab键,则会出现以下错误:
"Two-way binding requires Path or XPath."
问题属性之一如下所示:
private List<string> dataTablesForExport;
public List<string> DataTablesForExport
{
get { return dataTablesForExport; }
set
{
dataTablesForExport = value;
OnPropertyChanged();
}
}
这个xaml是:
<DataGrid ItemsSource="{Binding DataTablesForExport}" AutoGenerateColumns="False" Grid.Row="8" Grid.ColumnSpan="2">
<DataGrid.Columns>
<DataGridTextColumn x:Name="tableColumn"
Binding="{Binding Path=.}"
Header="Table Name"
Width="*" />
</DataGrid.Columns>
</DataGrid>
如果我使用F5启动应用程序,则会在输出窗口中注意到以下内容(以及许多类似的警告):
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=DataTablesForExport; DataItem=null; target element is 'DataGrid' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')
在VS的数据源窗口中,我注意到针对每个问题属性显示了“禁止进入”图标。
有人可以让我知道我哪里出问题了吗?