我已经简化了一些问题,但是我还需要在仍然绑定到ListView ItemSource的同时更改ListView项的样式和ControlTemplate。
这是我的ListView定义:
<ListView x:Name="MyListView"
ItemsSource="{Binding ListOfStrings}"
ItemContainerStyle="{StaticResource MyListViewItemStyle}"/>
ItemContainerStyle:
<Style x:Key="MyListViewItemStyle" TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<DataTemplate>
<TextBlock x:Name="txtValue" Text="{Binding Mode=TwoWay}" />
</DataTemplate>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ListView的ItemSource类型为:List<string>
我需要TextBlock(txtValue)来通过绑定到ItemSource来显示一个项目。
ListView包含正确数量的项目,但如何绑定TextBlock?
我需要在WPF通用Windows平台应用程序中执行此操作。一世 在普通的WPF Windows应用程序和代码中测试了相同的代码 工作正常。但是在ContentTemplate的UWP应用程序中 没有正确绑定。
我确信我错过了一些简单的事情。
答案 0 :(得分:0)
试试这个:
<Style x:Key="MyListViewItemStyle" TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<TextBlock x:Name="txtValue" Text="{Binding }" />
</ControlTemplate>
</Setter.Value>
</Setter>
双向绑定需要Path或XPath。
“模板内容”部分的根不能包含“System.Windows.DataTemplate”类型的元素。只有FrameworkElement和FrameworkContentElement类型有效。
答案 1 :(得分:0)
找到解决方案here。仍然试图弄清楚它为什么会起作用,但确实如此。