一千萬個為什麽

搜索

Expression Blend中的DataTriggers

我有一個列表框,顯示使用datatemplate格式化的Shipment Items(自定義類)(見下文)。模板中有一個border元素(我稱之為Gem),它顯示哪個項目處於活動狀態(未選中),這將是要添加產品的項目。

template.png

貨件類(活動)中有一個布爾屬性,它在Gem元素的單擊事件處理程序中設置。通常情況下,Gem應該像第一張圖像一樣暗,然後在活動時點亮。

我在DataTemplate中設置了DataTrigger來處理Gem顏色的變化。

    
 
  
   
    
     
     
    
   
  
 
 
  
   
    
     
     
    
   
   
 

但是,出於某種原因,當應用程序加載時,所有的寶石都會亮起,表明這些包都是活動的。

**由於stackOverflow的聲譽限制,我還無法發布更多超鏈接。下面的圖片與上面的圖片位於同一個域中。

/ExternalImages/ActiveItems.PNG

我已經檢查過所有項目實際上是Active = False,但是gem總是點亮。此外,當我運行click事件時,我會通過Package集合並設置所有Active = False,然後將發件人的TemplatedParent設置為活動狀態。

    Dim ActiveShipments = From ship In ShipmentData _
                         Where ship.Active = True
    For Each MyShipment As Shipment In ActiveShipments
        MyShipment.Active = False
    Next
    Dim Gem As Border = sender
    Dim ShipmentObject As ContentPresenter = Gem.TemplatedParent
    ShipmentObject.Content.Active = True

寶石不會回到它們的熄滅狀態(它們從來就不是第一個)。它們只是保持點亮。有任何想法嗎?

科裏

--Oddly,只在代碼框中顯示第一次編輯...現在修復。

最佳答案

實際上,我想通了。當我制作RadialGradiantBrushes時,我要麽沒有保存未點亮的那個,要麽我將燈光復制/粘貼到它上面並且沒有編輯它或什麽的。數據觸發器正在正常啟動,但由於兩個漸變都是點亮的,所以看起來沒有任何事情發生。抱歉,添麻煩了!

科裏

轉載註明原文: Expression Blend中的DataTriggers