0

我稍微简化了问题,但我需要更改 ListView 项的样式和 ControlTemplate,同时仍绑定到 ListView ItemSource。

这是我的 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 应用程序中测试了相同的代码,并且代码可以正常工作。但在 UWP 应用程序中,ContentTemplate 没有正确绑定。

我确定我错过了一些简单的东西。

4

2 回答 2

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 类型有效。

于 2016-02-23T09:29:40.807 回答
0

在这里找到了解决方案。仍在试图弄清楚它为什么起作用,但确实如此。

于 2016-02-24T05:56:45.810 回答