我有一个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
因为它在datatemplate中,你可能需要做像https://code.msdn.microsoft.com/windowsapps/How-to-access-a-control-6039571a这样的事情
或者使用你已经拥有的绑定,只需使用TwoWay模式。
{绑定UserFirstName,Mode = TwoWay}