3

我正在使用以下 XAML 代码在 ListView 中呈现一些数据:

<ListView x:Name="myListView"
          ItemsSource="{Binding myData}"
          RowHeight="230">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ViewCell>
          <ViewCell.View>
            <RelativeLayout Padding="1">
              <StackLayout x:Name="stackLayoutTitle"
                           Padding="5" 
                           Orientation="Vertical" 
                           VerticalOptions="EndAndExpand"
                           RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}"
                           RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.6}">
                <Label Text="{Binding myText}"
                       FontSize="Medium"
                       FontAttributes="Bold"
                       TextColor="Black">
                </Label>
              </StackLayout>
            </RelativeLayout>
          </ViewCell.View>
        </ViewCell>
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>

数据渲染正常。现在,我想做的是对 RelativeYConstranit 的 Factor 属性使用条带,以根据一些计算定位相应的 StackLayout。像这样的东西(参见 Factor 属性):

RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor={Binding someValue}}"

但是,在运行应用程序时出现错误。

有谁知道是否可以为此使用绑定表达式?

谢谢。

4

2 回答 2

0

我有这个问题。“因子”不是 BindingProperty。因此现在是不可能的。

于 2016-12-26T07:08:06.217 回答
0

我尝试了类似的事情,但未能为 YConstraint 绑定因子,这里解释了为什么它不起作用

从文档中:

在 C# 中,相对约束被定义为函数。Factor 之类的概念不存在,但可以手动实现。

我得到的错误信息:

无法分配属性“因素”:属性不存在,或不可分配,或值和属性之间的类型不匹配

结论:没有可绑定的属性(注意它必须是可绑定的属性,否则无法绑定) 底层代码中的因素,因此无法绑定。

于 2018-08-12T19:58:10.683 回答