UWP Swipeitem 不会看到任何绑定

UWP Swipeitem won't see any bindings

出于某种原因,我无法对 UWP Xaml SwipeItem 控件使用任何绑定。我已经以多种不同的方式尝试过它并使用不同的 SwipeItem 属性,但每次它都是空的。更奇怪的是任何类型的 x:Bind 到任何 属性 都会崩溃。

如果有人标记这个: SwipeItem XAML Binding ignored

作为一个重复的问题,它不是所以不要这样做,否则我会吓坏的。这个问题甚至都没有回答。

<SwipeControl>

        <SwipeControl.LeftItems>
            <SwipeItems Mode="Execute">
                <SwipeItem Text="{Binding}" Background="{StaticResource MIIGreen}" BehaviorOnInvoked="Close"/>
            </SwipeItems>
        </SwipeControl.LeftItems>

        <SwipeControl.RightItems>
            <SwipeItems Mode="Execute">
                <SwipeItem Background="{StaticResource MIIRed}" BehaviorOnInvoked="Close" Command="{StaticResource CommandEnclosureNotInstalled}" CommandParameter="{Binding}"/>
            </SwipeItems>
        </SwipeControl.RightItems>

</SwipeControl>

DataContext 只是一个简单的 DataModel,所有其他控件都可以正常绑定。该命令来自静态资源,并且该命令运行良好。在此示例中,当尝试将任何内容绑定到 Text 或 CommandParamter 属性时,Binding 或 x:Bind 的任意组合要么什么都不做,要么崩溃。 SwipItem 控件一定有问题,我需要一种通过 CommandParameter 传递 DataContext 的方法。

SwipeControl不是标准的itemControl,它没有dataTemplate,所以SwipeItem找不到父视图的DataContext,所以不能直接在xaml中直接使用Binding。看来你只能在代码中使用Binding。(下面我举LeftItems的例子)

在xaml中:

<SwipeControl Margin="50" LeftItems="{Binding leftItems}">
</SwipeControl>

在 CS:

public SwipeItems leftItems { get; set; }
public MainPage()
{
    this.InitializeComponent();
    SwipeItem leftItem = new SwipeItem();
    Binding myBinding = new Binding();
    myBinding.Source = viewmodel;
    myBinding.Path = new PropertyPath("MyText"); //the property in viewmodel
    BindingOperations.SetBinding(leftItem, SwipeItem.CommandParameterProperty, myBinding);
    BindingOperations.SetBinding(leftItem, SwipeItem.TextProperty, myBinding);

    Binding commandBinding = new Binding();
    commandBinding.Source = new FavoriteCommand(); //command class
    BindingOperations.SetBinding(leftItem, SwipeItem.CommandProperty, commandBinding);

    leftItems = new SwipeItems() {
        leftItem
    };
    this.DataContext = this;

}