【发布时间】:2017-03-06 15:16:08
【问题描述】:
由于Two way binding between DataGrid and an array我想做这样一个grid,但是还是有错误不知道怎么消除。
所有代码如下:
public partial class MainWindow : Window
{
private string[,] _data2D;
public string[,] Data2D
{
get { return _data2D; }
set { _data2D = value; }
}
public MainWindow()
{
_data2D = new string[9 , 9];
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
_data2D[i, j] = "0";
InitializeComponent();
dataGrid2D.DataContext = this;
}
}
还有 XAML:
<Window x:Class="test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:test"
mc:Ignorable="d"
xmlns:dg2d="clr-namespace:DataGrid2DLibrary;assembly=DataGrid2DLibrary"
Title="MainWindow" Height="350" Width="525">
<Grid>
<dg2d:DataGrid2D Background="Azure" UseModifiedDataGridStyle="true" HorizontalAlignment="Left" VerticalAlignment="Top" ColumnWidth="30" DataContext="this"
RowHeight="30" HeadersVisibility="None" Name="dataGrid2D" ItemsSource2D="{Binding Data2D}"/>
</Grid>
</Window>
和错误:
System.Windows.Data Error: 40 :
BindingExpression path error:
'Data2D' property not found on 'object' ''String' (HashCode=1178749465)'.
BindingExpression:Path=Data2D; DataItem='String' (HashCode=1178749465);
target element is 'DataGrid2D' (Name='dataGrid2D');
target property is 'ItemsSource2D' (type 'IEnumerable')
有人知道如何帮助我吗?它有时会导致并非所有控件都呈现:/ 有时某些控件会呈现一半等。
【问题讨论】:
-
网格不显示
-
是的,它可以工作,但无论如何它都有错误,如果有很多控件,有时所有渲染有时都不会。正是因为这个绑定,当我禁用它时,所有控件总是呈现
-
在哪里可以看到这个错误?
-
调试输出窗口
标签: c# wpf data-binding