我有一个简单的问题与绑定颜色。 当我尝试绑定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";
}
}
}
}
我想你需要一个价值转换器。 编译XAML时,系统自动将十六进制字符串转换为颜色。 但当绑定到字符串时,它不能这样做。 或者,在提供颜色值之前,可以绑定到颜色并在后面的代码中进行转换。