使用Lightswitch,Silverlight和自定义控件

Hec*_*tor 6 c# silverlight visual-studio-lightswitch

我有一个包含一些数据的屏幕.在屏幕内部,我有两个自定义控件(左侧和右侧).

我需要做的是以下内容:

将数据库中的一些数据绑定到第一个Custom控件中的某些控件.(填写列表,组合框等,而不是问题)

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

所以我知道如何构建图表并构建控件.但是如何通过代码从屏幕访问数据并从第一个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>;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 显示新屏幕

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

也许这会对某人有所帮助.

emb*_*yle 0

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

将查询拖到屏幕树上,将其更改为图表,然后按照 Yann 的链接检查绑定。

然后,您将需要类似于以下内容的代码来显示/隐藏控件:

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

partial void ButtonName_Execute()
{
    this.FindControl("SecondCustomControl").IsVisible = True;
}
Run Code Online (Sandbox Code Playgroud)

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