使用Lightswitch,Silverlight和自定义控件

使用Lightswitch,Silverlight和自定义控件

问题描述:

我有一些数据的屏幕。在屏幕内部,我有两个自定义的 控件(在左侧和右侧)。使用Lightswitch,Silverlight和自定义控件

我需要做的是以下几点:

绑定一些从数据库的一些控件的第一个自定义的控制数据。 (填表,组合框等,不是那么多的问题)

然后用户可以选择列表中的一个条目,按下按钮 - >第二个CustomControl现在应该是可见的;根据选择从数据库请求一些数据并动态创建并显示图表。

所以我知道如何构建图表并构建控件。但是,如何通过代码从屏幕访问数据 并从第一个CustomControl中访问另一个CustomControl?

编辑:

事情我发现。从屏幕

  1. 访问控制

    this.FindControl("yourControl");

  2. 做一些与控制:

    this.FindControl("yourControl").ControlAvailable += ((o,e) => { YourControlType myControl = e.Control as YourControlType; });

  3. 访问屏幕数据

    IContentItem dataContext = this.DataContext as IContentItem; 
        IScreenObject screen = dataContext.Screen; 
    
        IScreenProperty prop = screen.Details.Properties["yourProperty"]; 
    
        VisualCollection<yourProperty> items = prop.Value as VisualCollection<yourProperty>; 
    
  4. 显示新的屏幕

    Application.Current.Details.Dispatcher.BeginInvoke(() => Application.Current.ShowGraphScreen(reportItem.BlockID));

也许这将帮助别人。

+0

+1仅仅是关于如何访问屏幕数据的小宝石。由于自定义控件现在必须位于单独的库中,并且添加了对客户端应用程序的生成'Application.common'的引用,并结合您的示例,这是非常有帮助的。 – 2013-06-27 11:36:38

+0

此链接有帮助吗? [自定义控件绑定](http://social.msdn.microsoft.com/Forums/en/lsextensibility/thread/394d796​​8-5210-441a-bf29-3da7001af07d) – 2012-08-14 02:50:28

使用数据库中要从中获取数据的集合上的Parameter创建Filter查询。将此查询添加到屏幕并将参数绑定设置为FirstCustomControl

将查询拖到屏幕树上,将其更改为图表,并根据Yann的链接检查绑定。

然后需要类似于下面的代码来显示/隐藏控制:

partial void ScreenName_InitializeDataWorkspace(List<IDataService> saveChangesTo) 
{ 
    this.FindControl("SecondCustomControl").IsVisible = False; 
} 

partial void ButtonName_Execute() 
{ 
    this.FindControl("SecondCustomControl").IsVisible = True; 
} 

由于SecondCustomControl(我假设这是图表)被绑定到该查询,查询的参数绑定到在FirstCustomControl中选择的值,数据收集全部在后台完成。