这可能很容易,但我不知道从哪里开始。我解析XML值并将它们绑定到列表框;为了更好的界面,我希望我的项目以不同的背景颜色显示。 Item1的背景色为绿色,Item2的背景色为白色,item3的bg为绿色,item4为白色等。wp7中的自定义列表框
列表框 项目1:BG绿色 项目2:BG白色 项目3:BG绿色 项目4:BG白色
我应该采取什么方法来实现这一目标? 我的代码如下:
<ListBox Name="listbox1" Height="502" Width="448">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="15,10,25,10" OpacityMask="#FF33A82D" Background="#FFBEFFBE" Width="480">
<Image x:Name="imageAV" Source="Images/album_art_default_small.png" Height="100" Width="100"
Stretch="UniformToFill" Margin="0,0,15,0" />
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
<TextBlock Text="{Binding track}" FontWeight="Bold" Width="Auto" Margin="0,0,0,5" Foreground="Black" />
<TextBlock Text="{Binding artist}" Width="Auto" Foreground="Black"/>
<TextBlock Text="{Binding album}" Width="Auto" Foreground="Black"/>
<StackPanel.Background>
<SolidColorBrush />
</StackPanel.Background>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
代码:
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
using (var reader = new StreamReader(e.Result))
{
int[] counter = { 1 };
string s = reader.ReadToEnd();
Stream str = e.Result;
str.Position = 0;
XDocument xdoc = XDocument.Load(str);
var data = from query in xdoc.Descendants("rank")
select new ranking
{
index = counter[0]++,
// avlink = (string)query.Element("album_gdo").Element("avlink"),
album = (string)query.Element("album"),
track = (string)query.Element("track"),
artist = (string)query.Element("artist"),
};
// lb1.ItemsSource = data;
listbox1.ItemsSource = data;
}
}
感谢一大堆!
这是指ColorConverter而不是ColorFormatter?什么是指数以及指数如何传递给课堂以获得颜色? –
我在网上看到,我们必须添加命名空间和东西,我不知道如何做到这一点?你能帮我澄清一下吗? –