从Page.xaml.cs

时间:2018-02-22 08:49:16

标签: c# xaml uwp win-universal-app

我有一个相当奇怪的问题,但我不知何故希望它是可能的。 但经过大量阅读后,我对此感到非常悲观。

这就是为什么我现在在这里问这个问题。

我有一些Lists / OberservableCollections,我是通过从我的串口读取来创建的。 现在我的应用程序中有一个调试屏幕,我只显示这些列表的内容。 到现在为止还挺好。它工作得很好。

现在我有一个设置/控制页面,我想使用这些数据来生成一个控制页面。 为此,我需要使用不同的数据流来接收和构建控件。

我得到的流如下:

  1. 参数名称
  2. 最小值和最大值
  3. 设备上的当前值
  4. 测量参数的单位(如果有定义)
  5. 我创建了一个关于我希望它看起来如何的快速示例: Example picture

    第一个流将是视图的第一列。第二个流用于决定滑块的最小值和最大值,或者我是否需要滑块或其他东西。然后我有第三个流来设置滑块/控件的当前值。最后一个流用于在行尾添加单位描述。

    在我读取流后,是否有可能以某种方式创建控件而不在代码隐藏文件中创建它们? 我没有从我的视图开始阅读操作,所以我不能直接使用文件背后的代码。 也许我可以从其他地方调用我的代码隐藏文件中的函数? 或者我应该为此实现一个事件? (从未这样做过)

    我能想到的唯一选择是创建xaml中的所有元素并使用绑定控制它们的可见性,但这是完全不合理的,因为我将有大约100行参数......

    我在这里真的有点无奈:/

    祝你好运, 丹尼尔

1 个答案:

答案 0 :(得分:1)

我实际上已经找到了答案......

在写这个问题时,我记得有可能使用事件处理程序。所以我查看了如何实现它们。

我发现答案非常快,但ObservableCollection每次向其添加元素时都会触发一个事件。我不想要,因为我有100个活动......

所以我在SO上找到了另一篇文章,并实现了ObservableCollection的扩展版本。

可以找到here in this post

此扩展程序实现了AddRange选项。它只是清除集合并添加另一个集合。有了这个,CollectionChanged事件只会触发一次,我很高兴:D