Mik*_*num 4 data-binding silverlight silverlight-4.0
我试着将组合框项源绑定到静态资源.我过度说明了我的例子,因此很容易理解我在做什么.
所以我创建了一个类
public class A : ObservableCollection<string>
{
public A()
{
IKBDomainContext Context = new IKBDomainContext();
Context.Load(Context.GetIBOptionsQuery("2C6C1Q"), p =>
{
foreach (var item in SkinContext.IKBOptions)
{
this.Add(item);
}
}, null);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,该类有一个构造函数,它使用从持久化数据库中获取数据的domaincontext填充自身.我只是在这个列表上读取所以不必担心坚持回来.
在xaml中我添加了对该类的命名空间的引用,然后我将它作为usercontrol.resources添加到页面控件.
<UserControl.Resources>
<This:A x:Key="A"/>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
然后我用它这个staticresource将它绑定到我的组合框项目source.in现实我必须使用datatemplate正确显示这个对象,但我不会在这里添加.
<Combobox ItemsSource="{StaticResource A}"/>
Run Code Online (Sandbox Code Playgroud)
现在,当我在设计师时,我得到错误:
无法创建"A"的实例.
如果我编译并运行代码,它运行正常.这似乎只影响xaml页面的编辑.
我究竟做错了什么?
在设计器中运行时,完整的应用程序运行时不可用.然而,设计师并不只是神奇地知道如何模拟UserControl的UI.解析它的Xaml并实例化那里描述的对象.
由您来编写您的类以应对设计师的存在.您可以使用static proeprty DesignerProperties.IsInDesignTool
来确定您的代码当前是否在设计器工具中使用.
如果在设计人员中,您可以提供一组测试数据,而不是尝试访问数据服务.
归档时间: |
|
查看次数: |
5009 次 |
最近记录: |