WinForms から WPF への移行を試みており、正しい方法を学ぼうとしています。正しい MVVM モデルを使用したい。これは私の初めての WPF プロジェクトであり、linq の結果とのデータ バインディングに問題があります。コードビハインドでこれを非常に簡単に実行できること、またはカスタムオブジェクトを使用せずに、別のクラスを使用しながらlinqクエリからテーブル全体をデータグリッドに返すことができることを認識しています。しかし、私はこの形式に固執したいと思います。データテーブルを使用したくありません。
「ジョブ」テーブルを持つ dbml があるとします。列 "Job" (Linq はこの列の名前を Job1 に自動的に変更するようです)、"Customer"、および "Order_Date" を選択します。
これが私のコードです:
namespace Custom_Teplate.Model
{
public class LINQResult
{
public System.String JobNum
{ get; set; }
public System.String CustomerName
{ get; set; }
public System.DateTime Order_Date
{get; set; }
public static LINQResult Create()
{
DataDataContext dc = new DataDataContext();
dynamic query = (from ddd in dc.Jobs
where (ddd.Status == "Active")
select new LINQResult
{
JobNum = ddd.Job1,
CustomerName = ddd.Customer,
Order_Date = ddd.Order_Date,
});
return query;
}
}
}
名前空間を XMAL に追加します。
xmlns:c="clr-namespace:Custom_Teplate.Model"
<Window.Resources>
<c:LINQResult x:Key="ResultListData" />
</Window.Resources>
そして、itemssource を次のように設定します。
ItemsSource="{Binding Source={StaticResource ResultListData}}