我有一个ListBox绑定到一个工作正常的数据上下文。但是在某些项目上,我想要显示包含来自其他上下文的数据的文本块。但是我无法让它发挥作用。我有它在cs类中的字符串上工作,但是当我将它更改为实现INotifyPropertyChanged的类时,我根本没有显示文本...
这是我的xaml的简化ItemTemplate:
<DataTemplate x:Key="ArrivalFlightItemTemplate">
<TextBlock Text="{Binding ArrivalFlightItem.Operator}" />
<StackPanel Visibility="{Binding Converter={StaticResource FlightDisclaimerConverter}}">
<TextBlock Text="{Binding DisclaimerText}" Style="{StaticResource NormalText}" Foreground="{StaticResource DarkForegroundColor}">
<TextBlock.DataContext>
<local:FlightDisclaimerItem/>
</TextBlock.DataContext>
</TextBlock>
</StackPanel>
</DataTemplate>
在cs构造函数中我有:
var flightsVM = SingletonClass.FlightsViewModel;
this.DataContext = listFlightsVM;
disclaimerItem = new FlightDisclaimerItem();
disclaimerItem.DisclaimerText = Strings.FlightInfoDisclaimerShort;
任何人都可以帮我解决这个问题(我是Windows Phone新手)吗?
答案 0 :(得分:0)
为什么要在代码隐藏中绑定一些数据?你应该在XAML中完成所有工作。
<TextBlock DataContext="{Binding DataContext.DisclaimerItemProperty, ElementName=phoneApplicationPageName}" />
答案 1 :(得分:0)
我搞定了!我无法使用DataTemplate中的另一个DataContext工作。但是通过绑定到页面中的另一个对象(免责声明面板),它可以按预期工作。
Text="{Binding ElementName=DisclaimerPanel, Path=DataContext.DisclaimerText}"