我在longlistselector中有一个带边框的绑定文本块(比如6)。边框适用于所有文本块。这是绑定代码:
Public Sub LoadData()
' Sample data; replace with real data
Me.Items.Add(New ItemViewModel() With {.LineTwo = "New Endowment Plans", .LineThree = ""})
Me.imgsource.Add(New ItemViewModel() With {.imgsource = "/Images/endow_1.jpg"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "New Money Back Plans", .LineThree = ""})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "Single Premium Plans"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "New Term", .LineThree = "Plans"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "New Health", .LineThree = "Plans"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "New Pension", .LineThree = "Plans"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "Withdrawl", .LineThree = "Plans"})
Me.Items.Add(New ItemViewModel() With {.LineTwo = "Plans", .LineThree = "Information"})
End Sub
这里是xaml代码:
<phone:LongListSelector>
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="12,2,0,4" Height="105" Width="432" Tap="StackPanel_Tap">
<Border x:Name="planImage" BorderThickness="5" Width="99" Height="99" BorderBrush="#FFFFC700">
<Border.Background>
<ImageBrush ImageSource="/Images/liclogo.jpg" Stretch="Fill"/>
</Border.Background>
</Border>
<StackPanel Width="311" Margin="8,-7,0,0">
<TextBlock x:Name="Plantype" Foreground="#FF8FF01B" Text="{Binding LineTwo }" TextWrapping="Wrap" Margin="10,0" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeLarge}" />
<TextBlock Foreground="#FF8FF01B" Text="{Binding LineThree }" TextWrapping="Wrap" Margin="10,-2,10,0" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeLarge}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
我想更改每个边框背景图像,因为我使用的一个在所有文本块中都反映相同。
答案 0 :(得分:0)
如果我理解了你想要的是你的列表中的每个项目都有不同的图像。
有两种方法可以实现这一目标。
选项1:
添加一个名为ImagePath
的新属性(就像你有LineTwo和LineThree),然后分别为每个项添加图像路径,然后将代码更改为:
<Border.Background>
<ImageBrush ImageSource="{Binding ImagePath}" Stretch="Fill"/>
</Border.Background>
选项2:
创建转换器并将其绑定到Image
元素的图像源。
例子:
图像示例here
可见性示例here
微软的入门示例here
我认为针对您的案例的最佳解决方案是使用选项1 。直接前进,不需要任何额外的处理。然而,这需要你有一个额外的字段,其路径可能不同意,因为它为静态图像路径保留了大量“无用”信息,并建议使用选项2 !