WPF DataGridコントロールをDataTableオブジェクトにバインドするには、何が必要ですか?System.Data.DataTableオブジェクトへのWPF DataGridコントロールのデータバインディング?
私はこれ以上数日間苦しんできました。バインドとクエリの両方が正しく機能し、テーブルに観測可能なデータがある場合でも、データグリッドには何も表示されません。
私のXAMLコードはこのようになります。
<Window x:Class="DataGridTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:TK="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
Title="Window1" Height="300" Width="300">
<Grid>
<TK:DataGrid ItemsSource="{Binding Path=DTUsers}" />
</Grid>
</Window>
私のC#のコードビハインドはこのようになります。
(DAOは私のデータアクセスオブジェクトである)
public partial class Window1 : Window
{
public dao DAO = new dao (ConnectionString) ;
public System.Data.DataTable DTUsers { get; set; }
public Window1()
{
InitializeComponent();
if (DAO != null)
DTUsers = DAO.Query(@"SELECT * FROM users");
// Returns a DataTable object containing user records.
// I have confirmed that this returns my data correctly.
}
}
私は出力をチェックしましたし、バインディングエラーはありません。
これはなぜコンパイルされて実行されますが、データは表示されません。
(DataGridコントロールの場所がわからない場合は、hereがあります。インストールし、WPFToolkit.dllへの参照を追加します。[参照の追加]ダイアログの[.NET "]、WPF DataGridコントロールを使用するための[上記のXAMLのXML名前空間宣言]を提供してください)。
これは理にかなっています!ありがとう、トン! – Giffyguy
Hmm --- InitializeComponent()をコンストラクタの一番下に移動しましたが、少なくともDataGridは適切な列と列ヘッダーでデータを取り込めますが、データレコードはまだ表示されません。他のアイデア?もう一度答えたいと思ったら、もう一度投票します。 – Giffyguy
ああ、私は誤ってクエリをコメントアウトしたままだった...悪い。それはあなたの答えのおかげで今、完璧に動作します! – Giffyguy