2009-04-21 73 views
0

基本上,我有一個顏色列表和列表框項目定義的DataTemplate:的列表框項目重新應用模板編程

<DataTemplate x:Key="colorItemDataTemplate"> 
    <Border x:Name="borderInner" BorderBrush="Black" BorderThickness="1" Background="{Binding Brush}" Width="11" Height="11" /> 
</DataTemplate> 

現在,當我加了一堆物品進入列表框,然後設置列表框。 ItemsSource屬性到我的列表中,列表框被正確填充。

還有一個滑塊及其適當的事件處理程序。在事件處理程序中,來自列表框的其中一個項目的Brush屬性會更改。由於項目的外觀取決於畫筆屬性,因此列表框應反映更改。

我可以重置ItemsSource屬性,但所有項目都應用了它們的模板,並且在列表框中有200多個項目,這很慢。

那麼,有沒有什麼辦法刷新列表框中只有一個項目的模板?

Thanx

回答

1

我不確定我關注。如果您已將Background綁定到該物業,則更改物業應自動取消ListBoxItem的背景。如果您沒有看到,請確保您使用的是DependencyProperty或實施INotifyPropertyChanged

+0

謝謝,這工作。我實現了INotifyPropertyChanged,它可以根據需要工作。 – 2009-04-21 13:29:02

0

您可以使用綁定轉換器。在轉換器類,你可以有一些像邏輯

(pseudo-code) 
if (ListBoxItem.IsSelected) 
    return SpecialColorFromSlider 
else 
    return NormalListBoxColor