是否可以在maui xaml中绑定整数资源?



我试图将按钮数据模板的宽度绑定到我的视图模型中的属性,但似乎我不能这样做,因为我的集合视图的itemssource定义了我的按钮作为集合的一个对象的来源,但我想绑定到的属性是包含该集合的对象的属性。'

<CollectionView ItemsSource="{Binding Table}" HorizontalOptions="CenterAndExpand">
<CollectionView.Resources>
</CollectionView.Resources>
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Horizontal" Span="{Binding Span}" HorizontalItemSpacing="2" VerticalItemSpacing="2"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
<Button Text="{Binding Adjacent}" Command="{Binding TileChangedCommand}" CommandParameter="{Binding}" IsEnabled="{Binding IsEnabled}" BackgroundColor="Grey" HeightRequest="{Binding TableHeight}" WidthRequest="{Binding TableWidth}" CornerRadius="0" Padding="0"/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>

我想到了在我的集合视图中创建一个int资源并将其绑定到所需的属性,因为我的集合视图已经绑定到我的绑定的适当对象。问题是这似乎是不可能的,因为当我尝试这样做时:

<CollectionView.Resources>
<x:Int32 x:Key="width">
<Binding Path="TableWidth"/>
</x:Int32>
</CollectionView.Resources>

我得到错误:"类型'Int32'不支持直接内容。"这有可能吗?

您可以尝试使用祖先的绑定来将按钮的宽度绑定到视图模型的属性。如:

在xaml:

xmlns:local="clr-namespace:YourProjectName"
...
<CollectionView.ItemTemplate>
<DataTemplate>
<Button ...
WidthRequest="{Binding Source={RelativeSource AncestorType={x:Type local:YourViewModel}}, Path=TableWidth}" 
.../>
</DataTemplate>
</CollectionView.ItemTemplate>

最新更新