質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

3137閲覧

WPF C# でDataGridにObservableCollectionの内容が表示されません

as00000

総合スコア21

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

1グッド

0クリップ

投稿2019/12/21 06:52

前提・実現したいこと

Visual Studio 2019 を使用し、C# WPF のプログラムを作成しています

DataGridにObservableCollectionの内容を表示させたいのですが
指定した行数分の空欄が出来るだけで内容が表示されません

C# WPF とも始めて一週間なので
まったくの見当違いなコードを書いているかも知れませんが
その点もご指摘頂ければと思います

発生している問題・エラーメッセージ

エラーは発生しません

ブレークして DataContext の中を確認すると
GetDataGridItem で設定した内容が反映されています

実行すると4行の空欄が出来ており、編集状態にしても文字は入力されていません
又、編集状態でキーボードから文字を入力しても、セルからフォーカスが外れた瞬間に
入力内容は消えてしまいます

該当のソースコード

「MainWindow.xaml.cs」

C#

1using System; 2using System.Collections.Generic; 3using System.Collections.ObjectModel; 4using System.Data; 5using System.Linq; 6using System.Text; 7using System.Threading.Tasks; 8using System.Windows; 9using System.Windows.Controls; 10using System.Windows.Data; 11using System.Windows.Documents; 12using System.Windows.Input; 13using System.Windows.Media; 14using System.Windows.Media.Imaging; 15using System.Windows.Navigation; 16using System.Windows.Shapes; 17 18namespace PlaceTheProcessingData 19{ 20 public class DataGridItem 21 { 22 // ObservableCollectionに入れるデータの単一状態を定義 23 public string Main { get; set; } 24 public string Sub { get; set; } 25 public string SubSub { get; set; } 26 } 27 28 29 30 /// <summary> 31 /// Interaction logic for MainWindow.xaml 32 /// </summary> 33 public partial class MainWindow : Window 34 { 35 36 // DataGridItemを複数追加してCollectionとして使用する 37 //var DataGridItems = new ObservableCollection<DataGridItem>(); 38 ObservableCollection<DataGridItem> DataGridItems = new ObservableCollection<DataGridItem>(); 39 40 public MainWindow() 41 { 42 InitializeComponent(); 43 44 DataContext = this.GetDataGridItem(); 45 } 46 47 48 49 public ObservableCollection<DataGridItem> GetDataGridItem() 50 { 51 52 DataGridItems.Add(new DataGridItem() { Main = "Main1", Sub = "Sub1", SubSub = "SubSub1" }); 53 DataGridItems.Add(new DataGridItem() { Main = "Main2", Sub = "Sub2", SubSub = "SubSub2" }); 54 DataGridItems.Add(new DataGridItem() { Main = "Main3", Sub = "Sub3", SubSub = "SubSub3" }); 55 56 return DataGridItems; 57 } 58 59 60 } 61}

「MainWindow.xaml」

xaml

1<Window 2 x:Class="PlaceTheProcessingData.MainWindow" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 6 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 7 Title="PlaceTheProcessingData" 8 Width="500" 9 Height="450" 10 mc:Ignorable="d"> 11 12 <Window.Resources> 13 <ResourceDictionary> 14 <ResourceDictionary.MergedDictionaries> 15 <ResourceDictionary Source="Properties/ResourceDictionary_string.xaml" /> 16 <ResourceDictionary Source="Properties/ResourceDictionary_style.xaml" /> 17 </ResourceDictionary.MergedDictionaries> 18 </ResourceDictionary> 19 </Window.Resources> 20 21 <Grid> 22 23 <DataGrid 24 x:Name="datagrid_display_info" 25 Grid.Row="4" 26 Grid.Column="0" 27 Grid.ColumnSpan="5" 28 AutoGenerateColumns="False" 29 ItemsSource="{Binding}"> 30 <DataGrid.Columns> 31 <DataGridTextColumn 32 x:Name="Main" 33 Width="1*" 34 Header="Main" /> 35 <DataGridTextColumn 36 x:Name="Sub" 37 Width="1*" 38 Header="Sub" /> 39 <DataGridTextColumn 40 x:Name="SubSub" 41 Width="1*" 42 Header="SubSub" /> 43 </DataGrid.Columns> 44 </DataGrid> 45 </Grid> 46</Window>

補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio Community 2019
Version 16.4.1
VisualStudio.16.Release/16.4.1+29609.76
Microsoft .NET Framework
Version 4.8.03761

インストールされているバージョン:Community

Visual C++ 2019 00435-60000-00000-AA788
Microsoft Visual C++ 2019

Azure App Service Tools v3.0.0 16.4.457.38025
Azure App Service Tools v3.0.0

C# ツール 3.4.1-beta4-19607-02+52d275c4f82f329a9732b078c7f7fa0e45cd3e84
IDE で使用する C# コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。

CaseConverter 2.3
This is a simple visual studio extension to convert text between snake_case, camelCase and PascalCase.

Common Azure Tools 1.10
Azure Mobile Services および Microsoft Azure Tools で使用する共通サービスを提供します。

F# 4.6 用 Visual F# Tools 10.4 16.4.0-beta.19556.5+e7597deb7042710a7142bdccabd6f92b0840d354
F# 4.6 用 Microsoft Visual F# Tools 10.4

FormatDocumentOnSave 1.0
Enables auto formatting of the code when you save a file. Visual Studio supports auto formatting of the code with the CTRL+E,D or CTRL+E,F key shortcuts but with this extension the command 'Format Document' is executed on Save.

You can find the source here: https://github.com/Elders/VSE-FormatDocumentOnSave

IntelliCode 拡張機能 1.0
IntelliCode Visual Studio 拡張機能の詳細情報

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger 1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ ウィザード 1.0
Microsoft Visual C++ ウィザード

Microsoft Visual Studio VC パッケージ 1.0
Microsoft Visual Studio VC パッケージ

NuGet パッケージ マネージャー 5.4.0
Visual Studio 内の NuGet パッケージ マネージャー。NuGet の詳細については、https://docs.nuget.org/ にアクセスしてください

ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

StylerPackage Extension 1.0
StylerPackage Visual Stuido Extension Detailed Info

Visual Basic ツール 3.4.1-beta4-19607-02+52d275c4f82f329a9732b078c7f7fa0e45cd3e84
IDE で使用する Visual Basic コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。

Visual Studio Code デバッグ アダプターのホスト パッケージ 1.0
Visual Studio Code デバッグ アダプターを Visual Studio でホストするための相互運用レイヤー

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

xml

1<DataGridTextColumn 2 x:Name="Main" 3 Binding="{Binding Main}" 4 Width="1*" 5 Header="Main" />

のように対応先プロパティをBindingに指定してください。

投稿2019/12/21 07:09

編集2023/07/17 12:58
TN8001

総合スコア9321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

as00000

2019/12/21 07:39

期待通りに表示する事が出来ました 早急なご回答をありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問