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

问题描述 投票:0回答:1

我有一个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

c# wpf datagrid
1个回答
0
投票

因为它在datatemplate中,你可能需要做像https://code.msdn.microsoft.com/windowsapps/How-to-access-a-control-6039571a这样的事情

或者使用你已经拥有的绑定,只需使用TwoWay模式。

{绑定UserFirstName,Mode = TwoWay}

© www.soinside.com 2019 - 2024. All rights reserved.