Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# x:绑定不绑定到附加属性_C#_Xaml_Windows 10_Uwp - Fatal编程技术网

C# x:绑定不绑定到附加属性

C# x:绑定不绑定到附加属性,c#,xaml,windows-10,uwp,C#,Xaml,Windows 10,Uwp,有人能插话说明这是如何正确完成的吗?生成的代码中有一个编译器错误 <Grid> <Grid.RowDefinitions> <RowDefinition Height="100"/> <RowDefinition Height="100"/> </Grid.RowDefinitions> <Rectangle x:Name="BlueRect" Width="100" Hei

有人能插话说明这是如何正确完成的吗?生成的代码中有一个编译器错误

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="100"/>
    </Grid.RowDefinitions>
    <Rectangle x:Name="BlueRect" Width="100" Height="100" Grid.Row="1" Fill="Blue" />
    <Rectangle Width="100" Height="100" Grid.Row="{x:Bind BlueRect.(Grid.Row),Mode=OneWay}" Fill="Red" />
</Grid>


(这只是一个很小的例子,没有
模式=one-way
,它显然可以工作,但我需要它…另外,我想用
{x:Bind}
而不是传统的
{Binding}
)使用元素名进行绑定:

<Rectangle Width="100" Height="100" Grid.Row="{Binding ElementName=BlueRect,Path=(Grid.Row),Mode=OneWay}" Fill="Red" />

您可以就此进行报告

我想你可以通过调用<代码>这个.Buffux.UpDebug()/<代码>来考虑这一点,当你改变行并保持X:绑定一次。< /P> 例如,我们可以通过单击按钮将Grid.Row更改为“BlueRect”,下面的代码显示了如何处理此场景

在XAML中:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="100"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Rectangle x:Name="BlueRect" Width="100" Height="100" Grid.Row="1" Fill="Blue" />
    <Rectangle Width="100" Height="100" Grid.Row="{x:Bind BlueRect.(Grid.Row)}" Fill="Red" />
    <Button Content="Click me" Grid.Row="3" Click="Button_Click"></Button>
</Grid>

异步加载数据时,也可以使用this.Bindings.Update(),在初始化x:bind之前,数据可能还没有准备好。

您可以发布错误是什么吗?沿
矩形
行的某些内容不包含成员
请尝试将
x:Name
更改为
Name
。通读一遍,看起来你做得很对。似乎他们错过了那个用例,没有模式,没有附加属性,比如
Rect.Fill
,没有一个用例的例子。如果在一段时间内没有解决方案,也许你应该向MS报告一个错误。@Bart是的,我实际上认为这是生成的方法中的一个非常简单的错误,它只是使用了错误的类型。你告诉我Bindings.Update()很好,但我想我们都同意,这不是这个错误的解决方案。我可以看到各种不想要的事情发生在这种方法。
x:Bind
Binding
的最大优势应该是速度。这就是为什么
OneTime
的绑定模式是标准的原因。这将不允许在同一视图上进行true
OneTime
绑定。而且,这是一场噩梦。我在VisualStudio中通过笑脸图标提交了一个bug,我只希望它能尽快修复,因为它实际上只是代码生成器中的一个简单的错误。同意。因此,这只是针对特定场景的一种变通方法。我也会尝试通过内部方式报告,但不能说什么时候可以修复。X:Bind还有很长的路要走。
private void Button_Click(object sender, RoutedEventArgs e)
{
    Grid.SetRow(BlueRect, 2);
    this.Bindings.Update();
}