如何从WPF中的Gridview列控件读取值

时间:2009-04-10 05:30:19

标签: wpf gridview textbox

我正在使用WPF应用程序,其中我放置了一个listview控件,其中包含3个gridview列。第一个Gridview列具有标签Control,其余2个gridview列具有文本框控件。

现在我的问题是,如果用户在第一个Gridview文本框列中输入值,则应使用某个值更新第二个gridview文本框列。有没有办法做到这一点。

我使用代码隐藏文件中的数据表填充列表视图。

还有什么方法可以在第一个gridview列中获取标签控件的值。

提前致谢 urs Frnd:)

2 个答案:

答案 0 :(得分:0)

您可以使用ElementName绑定将两个TextBox绑定在一起。它们所在的Grid列是无关紧要的。下面的示例将使textBox2中的文本自动更新为textBox1中输入的文本。

    <TextBox Text="TextBox" Name="textBox1" />
    <TextBox Text="{Binding ElementName=textBox1, Path=Text}" Name="textBox2"/>

如果第二个文本框需要使用不同的值进行更新,则可以删除上述绑定,而是以编程方式执行:

textBox2.Text = textBox1.Text + " some text";

要获取Label控件的值,您需要为其指定一个名称,然后您可以使用该名称在代码隐藏文件中访问它。

XAML:

<Label Name="myLabel" Content="Label"/>

C#:

 // Assuming you have assigned text content to the Label as in the above XAML.
 string labelContent = myLabel.Content as string; 

答案 1 :(得分:0)

从我看到的WPF GridView只是ListView控件的视图模式(看起来感觉).. 与WPF中的大多数内容一样,我建议您使用ViewModel模式执行此操作。

  • 这意味着您已为Grid中的每一行创建ViewModel对象。真正的模型将是您的DataTable行。 View模型使用来自真实模型的数据进行播种。即,您可以从DataTable中的每一行创建一个新的ViewModel实例。然后使用ViewModel对象填充Grid
  • View模型公开了您需要在实际视图中显示的每个值的属性。因此,在这种情况下,ViewModel将公开3个属性(对于每个列)。
  • 连接UI列以绑定到ViewModel中的相应属性。
  • 现在,您的ViewModel.Property1将包含在更改时使用正确的计算值更新Property2的逻辑。它们都应触发PropertyChanged通知,GridView应反映两个单元格中的更新值。