這個問題一直在困擾着我一段時間,我似乎無法讓它工作。我使用的是數據模板的ListBox控件中格式化的項目,就像這樣:在WPF DataTemplate中數據綁定顏色
<ListBox HorizontalAlignment="Stretch" Name="listBox1" VerticalAlignment="Stretch" Grid.ColumnSpan="3" Grid.Row="1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100*" />
</Grid.ColumnDefinitions>
<Rectangle Width="30" Height="10" Grid.Column="0"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Fill="{Binding Path=Color,
Converter={StaticResource SolidColorBrushConverter},
Mode=OneWay}" />
<CheckBox Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsChecked="{Binding Path=Selected}" />
<Label Grid.Column="2" VerticalAlignment="Center"
Content="{Binding Path=Name}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
的問題是,矩形不與綁定的顏色出現,因爲它應該。跟蹤轉換器,綁定似乎從綁定項目中正確地獲取顏色(複選框上的其他綁定和標籤按預期工作)。另外,我在調試輸出中沒有發生綁定錯誤。
我還試圖在與黑色邊框,其正確地示出了<border>
元件包裹所述矩形,所以我知道該矩形至少顯示出來,但是在更換BorderBrush
屬性與從矩形的Fill
屬性相同的結合如圖所示以上導致邊界消失(再次,沒有綁定錯誤)。
如何正確實現WPF中Color的綁定?
我想'SolidColorBrushConverter'的輸入值已經轉換到合適的'Brush'實例? – Amry