DataGrgid DataRowTemplate中的当前上下文中不存在TextBox

时间:2018-09-03 01:43:17

标签: c# wpf datagrid

我有一个数据网格,单击该数据网格将显示一个供用户输入的文本框。我可以在文本框中显示详细信息。现在,我在datatemplate内部有一个Update按钮。单击更新按钮后,我希望用户输入并进行处理。

这是我的xaml代码:

<DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <Border BorderThickness="0" Background="BlanchedAlmond" Padding="10">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontSize="12" Text="First Name: " VerticalAlignment="Center" />
                            <TextBox x:Name="txtFirstName" FontSize="16" Foreground="MidnightBlue" Text="{Binding UserFirstName}" VerticalAlignment="Center" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontSize="12" Text="Last Name: " VerticalAlignment="Center" />
                            <TextBox x:Name="txtLastName" FontSize="16" Foreground="MidnightBlue" Text="{Binding UserLastName}" VerticalAlignment="Center" />
                        </StackPanel>
                        <StackPanel>
                            <Button x:Name="btnUpdate" Content="Update" VerticalAlignment="Center" HorizontalAlignment="Right" Click="btnUpdate_Click"/>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>

这是我的.cs代码:

void btnUpdate_Click(object sender, RoutedEventArgs e)
    {

        string firstName;
        firstName = txtFirstName.Text;
    }

txtFirstName.Text显示Does Not Exist In The Current Context

1 个答案:

答案 0 :(得分:0)

由于它位于数据模板中,因此您可能必须执行类似https://code.msdn.microsoft.com/windowsapps/How-to-access-a-control-6039571a

的操作

或者使用已有的绑定,只需将模式设置为TwoWay。

{绑定UserFirstName,Mode = TwoWay}