2009-06-02 90 views
1

目標 開發顯示指定星期的摘要數據的自定義控件。WPF基於條件的數據綁定

傳遞的將是如下數據:

3rd May 2009  Customer A  $2000 
4th May 2009  Customer A  $3900 
6th May 2009  Customer B  $1900 

預期顯示將

3rd May  4th May  5th May  6th May 
    Customer A Customer A     Customer B 
    $2000  $1900       $1900 

正如你可以看到基於日期的數據是有條件的。

根據WPF中的條件,項目是否可以數據綁定?

即當數據源日期==經常項目迄今

,或者我應該只是堅持編碼在C#這背後的邏輯顯示總結?

-----------------編輯Andy的問題--------------------

I可以使其實現一個接口,但不是基類。

我想要做的就是控制顯示一年的日期價值的日期,這將通過稱爲本週的屬性設置。

然後,當已知的數據源(請參見上面的示例表格)傳入時,我希望控件中的任何一天項目從數據源中提取數據(如果有),如果沒有,則仍然顯示但只顯示日期。

的數據將是電網彙總對象的列表

public class GridSummary 
{ 
    public DateTime SummaryDate; 
    public Client Customer; 
    public decimal Amount; 
} 
+0

對不起,我應該已經更清楚了,我希望開發人員能夠將任何數據源放入我的控件中,而我的控件只會在給定日期顯示數據。 – Peter 2009-06-02 15:37:49

+0

數據格式應該是上面的表格,但它不起作用,對不起,我是新的。因此每個項目都顯示日期,下面的客戶,然後是低於該值的收費金額。 – Peter 2009-06-02 15:39:42

回答

1

如果我理解正確,您希望以列表格式顯示一些表格數據。它是否正確?

你對數據輸入有什麼瞭解?它保證實現一個接口,或從基類繼承?如果是後者,那麼我認爲數據模板是可行的 - 爲每種可能的類型創建一個數據模板,並且每個模板都應該顯示爲TargetType。將數據綁定到控件時,WPF將自動爲集合中的每個對象選擇正確的數據模板。

如果您無法知道任何有關數據傳入的信息,您怎麼可能知道要顯示什麼內容,或者如何顯示它?似乎至少應該有一些關於傳入數據必須知道的事情。

(有可能我不明白你想要做什麼 - 請澄清,我會看看我能否幫助更多。)

更新

這聽起來像你的控制將是GridSummary對象列表中的數據源。如果是這種情況,那麼我認爲您可以使用CollectionViewSource作爲數據源(基本上包裝了您的GridSummary對象集合),並訂閱其Filter事件。對於傳入的每個對象,將日期與CurrentWeek屬性的星期進行比較,如果日期在該周內接受它(鏈接的MSDN頁面就是一個例子)。

0

你可以這樣做:

if(a) 
    this.DataSource = a; 
else 
    this.DataSource = b; 

我不知道那是你,雖然是什麼意思。

你在做自己的渲染嗎?或者你是否建立了基本控制的控制?你也許可以使用嵌套控件來獲得你想要的,你可以有條件地控制嵌套控件。

+0

這是在WPF中,所以基本上它將是一個帶有頁眉和頁腳的列表控件。 – Peter 2009-06-02 16:42:10