提问者:小点点

绑定边框HexColor


我有一个简单的问题与绑定颜色。 当我尝试绑定BorderHexColor时,我得到以下错误:

找不到“BorderHexColor”得属性,可绑定属性或事件,或者值与属性之间得类型不匹配。

何时:

<ffTransformations:RoundedTransformation Radius="240" 
                                         BorderHexColor="#fc0303" 
                                         BorderSize="10"/>

没有绑定BorderHexColor的代码工作得很好。

我的代码:

<CollectionView x:Name="collectionStories"
                ItemsSource="{Binding .}"
                HeightRequest="75"
                HorizontalScrollBarVisibility="Never"
                ItemsLayout="HorizontalList">
    <CollectionView.ItemTemplate>
        <DataTemplate>
            <StackLayout Margin="5,0,5,0">
                <ff:CachedImage Source="{Binding instagramModel.ProfilePicture}"
                                WidthRequest="50"
                                HeightRequest="50"
                                VerticalOptions="Center"
                                HorizontalOptions="Center">
                    <ff:CachedImage.Transformations>
                        <ffTransformations:RoundedTransformation Radius="240" 
                                                                 BorderHexColor="{Binding HexColor}" 
                                                                 BorderSize="10"/>
                    </ff:CachedImage.Transformations>
                    <ff:CachedImage.GestureRecognizers>
                        <TapGestureRecognizer Tapped="InstaStory_Tapped"/>
                    </ff:CachedImage.GestureRecognizers>
                </ff:CachedImage>
                <Label Text="{Binding instagramModel.Username}"
                       TextColor="Gray"
                       FontSize="Small"
                       VerticalOptions="Center"
                       HorizontalOptions="Center"/>
            </StackLayout>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

我的班级:

public class InstaStories
    {
        public InstagramModel instagramModel { get; set; }
        public Post Post { get; set; }
        public bool IsSeen { get; set; }

        public string HexColor
        {
            get
            {
                if (!IsSeen)
                {
                    return "#fc0303";
                }
                else
                {
                    return "#28fc03";
                }
            }
        }
    }

共1个答案

匿名用户

我想你需要一个价值转换器。 编译XAML时,系统自动将十六进制字符串转换为颜色。 但当绑定到字符串时,它不能这样做。 或者,在提供颜色值之前,可以绑定到颜色并在后面的代码中进行转换。

相关问题