我有Class MyClass:
public class MyClass
{
public string MyColor { get; set; }
public class TeamOfCreators : ObservableCollection<Creator>
{
public string CategoryName { get; set; }
}
public ObservableCollection<TeamOfCreators> TeamsOfCreators { get; set; }
}
和Xaml:
<toolkit:LongListSelector ItemsSource="{Binding MyClass.TeamsOfCreators}" Height="530">
<toolkit:LongListSelector.GroupItemTemplate>
<DataTemplate>
<Border Background="{Binding MyColor, Converter={StaticResource NativeColorConverter}}" />
<TextBlock Text="{Binding CategoryName}" Style="{StaticResource PhoneTextGroupHeaderStyle}"/>
</Border>
</DataTemplate>
</toolkit:LongListSelector.GroupItemTemplate>
</toolkit:LongListSelector>
如何绑定背景,到达那里MyColor?应该如何在xaml中查看背景中的绑定?
答案 0 :(得分:1)
在DataTemplate中,DataContext是一个对象,例如对于TeamCreator
。 TeamCreator
没有名为MyColor
的属性 - 每个TeamCreator
都有自己的颜色,或者所有对象只有一种颜色?
如果每个TeamCreator
都有自己的颜色,请将MyColor
属性移到TeamCreator
类。
如果要控制TeamCreator
中所有MyClass
个对象的背景属性,则必须访问DataTemplate之外的DataContext。
例如,如果您已将DataContext设置为,例如,您的Window,
<Window x:Name="MyWindow">
<toolkit:LongListSelector ItemsSource="{Binding TeamsOfCreators}">
<toolkit:LongListSelector.GroupItemTemplate>
<DataTemplate>
<Border Background="{Binding DataContext.MyColor,
ElementName=MyWindow,
Converter={StaticResource NativeColorConverter}}"/>
<!-- ... -->
</Border>
</DataTemplate>
</toolkit:LongListSelector.GroupItemTemplate>
</toolkit:LongListSelector>