0

我有班级 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 中查看背景中的绑定?

4

1 回答 1

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>
于 2013-11-02T03:17:02.453 回答