gpt4 book ai didi

c# - 使用 Lightswitch、Silverlight 和自定义控件

转载 作者:太空狗 更新时间:2023-10-29 22:01:24 26 4
gpt4 key购买 nike

我有一个带有一些数据的屏幕。在屏幕内我有两个自定义控件(在左侧和右侧)。

我需要做的是:

将数据库中的一些数据绑定(bind)到第一个自定义控件中的一些控件。(填写列表、组合框等,问题不大)

然后用户可以在列表中选择一个条目,按下一个按钮 -> 现在应该使第二个 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));

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

最佳答案

在要从中获取数据的数据库中的集合上创建一个带有参数的过滤器查询。将此查询添加到屏幕并将参数绑定(bind)设置为 FirstCustomControl

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

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

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

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

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

关于c# - 使用 Lightswitch、Silverlight 和自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com