我有一個WP7應用程序頁面中的列表框,我綁定到名爲位置的自定義對象的集合(列表)。在那個對象是一個名爲WMO的字段,當ListBox加載時我想要做的事情是將任何綁定的列表框項目的foregound顏色設置爲與我的默認值相同的值......但我似乎無法得到這個工作而我讀過或搜索過的東西都沒有幫助。如何設置列表框項目的前景色
我知道列表中的項目都綁定到數據源,但我想要了解該項目的物理表示並更改前景色....只是不能解決我如何做到這一點,所以如果有人可以幫助我欣賞它。
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="0,0,0,0" >
<ScrollViewer Height="615" HorizontalAlignment="Left" Margin="5,5,5,5" Name="scrollViewer1" VerticalAlignment="Top">
<ListBox Name="lbxSavedLocs" Height="615" FontSize="22" HorizontalAlignment="Left" VerticalAlignment="Top" Width="470" SelectionChanged="lbxSavedLocs_SelectionChanged" Loaded="lbxSavedLocs_Loaded">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Width="380" Text="{Binding SiteName}" HorizontalAlignment="Left" />
<TextBlock Width="90" Text="{Binding WMO}" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</Grid>
private void lbxSavedLocs_Loaded(object sender, RoutedEventArgs e)
{
//Populate the listbox from our saved locations.
lbxSavedLocs.ItemsSource = gl.savedLocs.OrderBy(x => x.SiteName);
foreach (Location itm in lbxSavedLocs.Items)
{
if (loc.WMO == gl.defaultWMO)
{
//GET AN "INVALID CAST" EXCEPTION HERE:
((ListBoxItem)itm).Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
}
}
//Hopefully this produces a redraw of the ListBox.
lbxSavedLocs.InvalidateArrange();
}
謝謝 - 我會試一試,但這是你測試過的東西,還是隻是猜測? – nzmike
我已經測試過了。 – VichitraVij
我的要求是動態改變某個/某些特定列表框項目的背景! – VichitraVij