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 ロジックはどのように実装されていますか? WPF でのこのようなことは、MVVM の方法で行うと非常に簡単です。作品がエンティティのコレクションにバインドされている場合は、 のプロパティに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 に答える