在WPF中生成大型类似的Windows

时间:2010-06-16 14:43:38

标签: c# wpf xaml

我希望能有一些比我更好的经验来创建一个用于在WPF中显示数据的窗口/窗口组。以下是我的任务概述:

  • 我将从接收器获得大量二进制输出。然后将对每个二进制字符串解析并键入特定位的含义(即word1 bit1 = Receiver Status OK“)。

  • 然后必须以某种形式显示数据,格式为Receiver Status OK [CheckBox绑定到值],或者X方向的速度:[TextBlock绑定到值]

问题如下:

  • 当用户需要查看传入数据时,需要显示约60条独特的“消息”

  • 每条信息的长度都不同,每条信息的含义不同,必须显示的字段数也不同。

我想知道你将如何处理这种情况。我想要蛮力,每个消息一个窗口,但这似乎非常原始。我的另一个想法是制作一个标准窗口,其中一个网格是最大消息的大小,然后用必要的TextBlocks等填充它。然后,我只是将每个消息的字段的键和值DataBind,并折叠未使用的字段。

任何建议都将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

听起来你有一堆具体的消息类。如果是这种情况,我会为DataTemplate Window's中的每封邮件创建一个新的ResourcesDataTemplate's x:Key应设置为它所代表的类的类型。然后,您可以将Content的{​​{1}}设置为邮件实例,并为该类型选择正确的Window

e.g。

DataTemplate

当您创建<Window x:Class="MessageTest.MessageWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lcl="clr-namespace:MessageTest"> <Window.Resources> <DataTemplate x:Key="{x:Type lcl:SimpleMessage}"> <TextBlock Text="{Binding MessageContent}" /> </DataTemplate> </Window.Resources> </Window>

Window