コンテキストのVisual Studio 2015WPFにバインドされたDataGrid - 非表示の列を追加してステータスを表示できますか?
問題
を使用して
C#WPFデスクトップアプリケーション私がしようとしているデータの利用者の行を示すリスト< T>オブジェクトにバインドされたデータグリッドを持っています処理される。それらが処理されるにつれて、このDataGridに「Status」列を追加して、各行の処理の成功またはその他を示す必要があります。私はこの余分な列をmanupulating行くにはどうすればよい
質問
?私は2つのアプローチを考えました:
- ステータスデータを含むようにバインドされたデータを変更してください。しかし、バウンドオブジェクトは外部ソースAPIから直接取得され、したがって構造は固定されているので、これは難しいことです。
- バインドされていない列をDataGridに追加します(下の例を参照)。これは私が推奨するアプローチですが、各行が処理されるたびに非結合セルにアクセスして状態を更新する方法はわかりません。
例
<DataGrid DockPanel.Dock="Bottom" Name="ordersGrid" IsReadOnly="True" Margin="0,5,0,0" CanUserAddRows="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Status" Binding="{Binding /}"/>
<DataGridTextColumn Header="Last update date" Binding="{Binding LastUpdateDate, StringFormat=\{0:dd/MMM/yy HH:mm:ss\}}" SortDirection="Ascending"/>
<DataGridTextColumn Header="Order id" Binding="{Binding OrderId}"/>
<DataGridTextColumn Header="Sales channel" Binding="{Binding SalesChannel}"/>
<DataGridTextColumn Header="Currency" Binding="{Binding OrderTotal.CurrencyCode}"/>
<DataGridTextColumn Header="Amount" Binding="{Binding OrderTotal.Amount, StringFormat=N2}"/>
<DataGridTextColumn Header="Number of items" Binding="{Binding NumberOfItemsShipped}"/>
<DataGridTextColumn Header="City" Binding="{Binding ShippingAddress.City}"/>
<DataGridTextColumn Header="County" Binding="{Binding ShippingAddress.StateOrRegion}"/>
<DataGridTextColumn Header="Country" Binding="{Binding ShippingAddress.CountryCode}"/>
</DataGrid.Columns>
</DataGrid>
グリッドがユーザに表示され、[状態]列は、最初はブランクであるべきです。ユーザーが進行ボタンを押すと、データの各行がデータベースにコミットされるたびに、ステータス列に成功または失敗のメッセージを挿入したいと考えています。
..theグリッドが現在と背後にあるコードに移入され...
orders = new List<WebServiceOrders.Order>();
orders = WebAPI.ListOrders(ordersClient.Client, LastImportedDateTime).OrderBy(o => o.LastUpdateDate).ToList();
WebServiceOrders.Order がは、Statusプロパティ
これは扱いになり、私が見ている他のプロジェクトにとって本当に便利な概念です - ありがとう。 – ifinlay