UWP中的绑定宽度不工作,我如何更新宽度?



我使用了ListView和observable集合,下面是它的数据模板。我已经将矩形的宽度绑定到相对面板,但是它不起作用

<DataTemplate>
<RelativePanel x:Name="Tab" SizeChanged="{x:Bind Tab_SizeChanged}">
<StackPanel>
<TextBox Text="{Binding TabName, Mode=TwoWay}">
</TextBox>
</StackPanel>
<Rectangle Fill="{Binding Color}" RelativePanel.AlignBottomWithPanel="True" Width="{Binding ElementName=Tab,Path=Width}">
</Rectangle>
</RelativePanel></DataTemplate>

我也尝试过Width="{Binding RectWidth}",当相对面板尺寸变化时,我正在更新RectWidth

文件后面的代码如下所示

public double RectWidth{get;set;}
public void Tab_SizeChanged(object sender, SizeChangedEventArgs e)
{
RectWidth = e.NewSize.Width;
}

他们两个都不工作。

绑定源属性设置动态应该假设你实现INotifyPropertyChanged和提高PropertyChanged事件通知视图的更新。

但是由于您已经为Panel处理了SizeChanged事件,您可以直接在处理程序中设置RectangleWidth:

public void Tab_SizeChanged(object sender, SizeChangedEventArgs e)
{
RelativePanel panel = (RelativePanel)sender;
Rectangle rectangle = panel.Children[1] as Rectangle;
if (rectangle != null)
rectangle.Width = e.NewSize.Width;
}

最新更新