我有一个名为
的界面ISquare
有一个usercontrol MatrixGrid,它有一个公共属性
public List<List<ISquare>> Squares
{
get { return (List<List<ISquare>>)GetValue(SquaresProperty); }
set { SetValue(SquaresProperty);}
}
并且我能够在设计器中为此用户控件绑定它而没有任何问题。
如果我将MatrixGrid放在窗口中并尝试绑定到Squares属性,则设计器会抛出错误
The member "Squares" is not recognized or accessible
和设计师的Gui部分显示
Invalid Markup, check the error list for more information
运行程序,所有绑定都能正常工作,一切都没有问题。
这是设计师中的错误还是有关于此的某个规则?
我正在运行Visual Studio Express 2012 for Windows Desktop
我能够使用以下代码复制它
TestControl.xaml.cs
public partial class TestControl : UserControl
{
public TestControl()
{
InitializeComponent();
}
public static DependencyProperty
TestProperty = DependencyProperty.Register("MyTest", typeof(List<List<Test>>), typeof(TestControl));
public List<List<Test>> MyTest { get { return (List<List<Test>>)GetValue(TestProperty); } set { SetValue(TestProperty, value); } }
}
public interface Test {}
TestWindow.xaml
<Window x:Class="simthing.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:simthing"
Title="TestWindow" Height="300" Width="300">
<Grid>
<local:TestControl MyTest="{Binding Tests}"/>
</Grid>
</Window>