C# 动态创建网格

C# 动态创建网格,c#,wpf,visual-studio-2010,prism-4,C#,Wpf,Visual Studio 2010,Prism 4,我在数据库中有一个表,我需要在其中显示所有行的内容(作为文本块),在每个文本块的右侧,我需要显示一个文本框,以便用户可以为每行输入一个值(一个数字),并且当用户提供的值为负值时,我还需要能够更改任何文本框的颜色 有人能给我一个线索吗 PD:我正在将WPF与Prism 4和MVVM模式以及VS2010 Ultimate一起使用,很高兴知道您尝试了什么,这样我们可以更好地帮助您,但您几乎肯定希望将数据绑定到一个或,如果您绝对需要更大的灵活性(到目前为止,似乎不是这样),一个。您不希望只是动态地创建网

我在数据库中有一个表,我需要在其中显示所有行的内容(作为文本块),在每个文本块的右侧,我需要显示一个文本框,以便用户可以为每行输入一个值(一个数字),并且当用户提供的值为负值时,我还需要能够更改任何文本框的颜色

有人能给我一个线索吗


PD:我正在将WPF与Prism 4和MVVM模式以及VS2010 Ultimate一起使用,很高兴知道您尝试了什么,这样我们可以更好地帮助您,但您几乎肯定希望将数据绑定到一个或,如果您绝对需要更大的灵活性(到目前为止,似乎不是这样),一个。您不希望只是动态地创建
网格


关于文本框的问题,以及当值为负值时如何更改其颜色,实际上与如何进行布局是一个单独的问题。为此,我会研究WPF的组件。

我不会给您提供完整的解决方案,但我可以为您指出正确的方向

首先,我创建一个数据结构,其中包含
Name
Value
的属性,并实现属性更改通知

接下来在
ViewModel
(或者可能是
Model
)中,我将创建一个
observetecollection
,并用数据库中的数据填充它

在XAML中,我将使用集合的绑定,并覆盖
ItemTemplate
,以将每个项目呈现为水平
StackPanel
Grid
,其中包含
标签
文本框

对于
TextBox.Foreground
属性,我会将其绑定到与
TextBox.Text
绑定到的值相同的值,但我也会在绑定中使用一个,它会检查值是否高于或低于0,并返回正确的颜色。因为它是一个绑定,所以每当值更改时,它都会自动更新

<TextBox Text="{Binding Value}"
         Foreground="{Binding Value, Converter={StaticResource MyCustomConverter}}" />

谢谢大家,我先试试@Rachel的建议,然后再试试验证器。