我有一个WPF应用程序来显示来自串行流的传入字节。我想在允许更改的用户控件内显示这些字节(即字节值更改意味着背景颜色更改以警告用户,用户选择以十六进制/十进制/二进制形式查看数据)。到目前为止,我有一个
ObservableCollection<ByteDisplay>
其中ByteDisplay
是绑定到具有一些相关属性的数据模型的WPF用户控件: DisplayFormat (枚举十六进制/二进制/十进制),数据 (实际字节值)和 BgColor (表示系统颜色的字符串表示值已更改)。
我的问题是我必须完全替换ByteDisplay
的DataContext才能在包含此集合的聚合视图中显示更改。我想我可以使用ValueConverter来解决原始字节的集合问题,而不是在聚合视图的ViewModel中完成更改,但这是正确的方法吗?
答案 0 :(得分:0)
为什么要使用ObservableCollection?听起来很奇怪。
在我看来,您可以通过遵循MVVM模式简单地创建绑定到视图模型的用户控件。
在这里,您可以拥有与视图模型中的属性绑定的文本块,文本框,数据网格,图表等。您也可以将background属性绑定到viewmodel或使用转换器,如上所述。就像你有一些其他属性指的那样,假设你在文本框中显示一些值,并使用相同的值来更改背景颜色以警告用户,那么使用转换器。
这很简单。我还不了解创建ObservableCollection背后的逻辑。