1

我目前正在尝试获取 a 中选定行的内容,以便在按下按钮时DataGrid出现在单个文本框中。DataGrid就目前而言,我可以将值放入各自的文本框中,但是,文本框不仅像我想要的那样将单元格值作为字符串提供,而是像这样显示值类型: System.Windows.Controls.DataGridCell: Leary .

我尝试用几种不同的方式将单元格值转换为字符串,但我最近的尝试是这样的:

    var rowSelection = EditGrid.GetSelectedRow(myGrid);
    var columnSelection = EditGrid.GetCell(myGrid, rowSelection, 3);
    string cellToEdit = Convert.ToString(columnSelection);

    customerNameTxt.Text = cellToEdit;

如果有人想查看它,我可以提供我创建的 EditGrid 类,但是,我认为这不是问题所在,因为我将正确的单元格放入每个文本框;我希望这只是一个格式问题。

提前感谢任何可以提供帮助的人

4

2 回答 2

1

尝试将其投射到您的UIElement

string cellToEdit = ((TextBlock)columnSelection.Content).Text;
于 2012-11-30T19:24:20.250 回答
0

你的 UI 逻辑是如何实现的?当您以 MVVM 方式执行时,WPF 中的此类事情非常容易。如果您的DataGrid作品绑定到实体集合,您只需将您的作品绑定TextBox.TextDataGrid.SelectedItem.

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:local="clr-namespace:WpfApplication1"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="525"
    Height="350"
    mc:Ignorable="d">
<Window.DataContext>
    <local:ViewModel/>
</Window.DataContext>
<Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <DataGrid x:Name="MyDataGrid" ItemsSource="{Binding Items}"/>
    <TextBlock Grid.Column="1" Text="{Binding SelectedItem.MyProperty, ElementName=MyDataGrid}"/>
</Grid>
</Window>
于 2012-11-30T20:07:51.580 回答