如何将DataRow绑定到TextBlock?

时间:2010-11-13 21:47:00

标签: wpf xaml

我有窗口。 Window.DataContext = DataRow。

我有TextBlock。

我需要将DataRow.Array [0]绑定到TextBlock的Text属性。

我该怎么做?

编辑:

<Window x:Class="Client.payment.CheckMore"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpf="http://schemas.microsoft.com/wpf/2008/toolkit" Loaded="Window_Loaded" x:Name="p_this">
            <DockPanel>
                <TextBlock x:Name="p_idCheck" Text="{Binding Path=Array[0]}"/>
            </DockPanel>
</Window>
代码中的

:this.DataContext = dateRow.Rows [0];

2 个答案:

答案 0 :(得分:5)

您正在寻找的房产可能是ItemArray。您可以像这样绑定它,以下方法将给您相同的结果(如果第一列名为Column1)。

  • 第一个示例绑定到ItemArray中的第一个项目
  • 第二个示例绑定到第一列的值
  • 第三个示例绑定到名为Column1的列的值。这是推荐的方法,因为即使您的列更改了订单,它仍然可以使用。

Xaml

<StackPanel>
    <TextBlock x:Name="p_idCheck"
               Text="{Binding Path=ItemArray[0]}"/>
    <TextBlock x:Name="p_idCheck2"
               Text="{Binding Path=[0]}"/>
    <TextBlock x:Name="p_idCheck3"
               Text="{Binding Path=[Column1]}"/>
</StackPanel>

示例背后的代码

private DataSet m_dataSet = null;
public MainWindow()
{
    InitializeComponent();
    m_dataSet = new DataSet();

    DataTable dataTable1 = new DataTable("Table1");
    dataTable1.Columns.Add("Column1", typeof(string));
    m_dataSet.Tables.Add(dataTable1);

    DataRow dataRow1 = dataTable1.NewRow();
    dataRow1["Column1"] = "Column1Value";
    dataTable1.Rows.Add(dataRow1);

    this.DataContext = dataRow1;            
}

答案 1 :(得分:0)

<TextBlock Text = "{Binding Array[0]}" ...
如果Array是公共财产,则

正常工作。