0

在我的 XAML 页面上,我有一个带有以下绑定的文本块:

<TextBlock Width="{Binding ActualWidth, ElementName=SessionList, Mode=OneWay}" ...  />

这绑定到网格视图:

<GridView x:Name="SessionList" ItemsSource="{Binding Sessions}"... />

现在,当页面首次加载并且数据可用时,文本块将可见并具有正确的宽度。当页面加载并且没有数据时,由于绑定的宽度,文本框将不可见。

但是......当我在后台加载数据并在一段时间后数据进入(通过MVVM)时,将显示列表,但文本块宽度不会相应改变,并将其设置为TwoWay无效。

有什么想法/提示吗?

4

2 回答 2

0

像这样的绑定问题通常是由不可绑定的属性引起的,即它们不是依赖属性和/或没有实现 INotifyPropertyChanged。任何。我使用附加的依赖属性,或者,如果这还不够,则使用行为。现在行为不包含在 WinRT 中,但该问题已得到解决;-)

于 2012-06-17T14:03:08.343 回答
0

ActualWidth 不是您可以在 WinRT 中绑定到的属性。不确定您是显示静态文本还是绑定文本。如果绑定的文本和数据与 GridView 相同,那么如果数据为空,它应该消失。如果是静态数据,则使用 ValueConverter 根据数据为 null/empty 设置 TextBlock 的可见性

于 2012-06-17T05:19:40.623 回答