我遇到了一个ListView的情况。在项目模板中有一个DataTemplate,在DataTemplate中有一个ListViewItem,它的内容是绑定的。当我单击时,我想选择项目,但当我将鼠标悬停在它上面时,似乎有一个使用ItemTemplate和DataTemplate创建的按钮。现在,我可以通过单击同一行中的其他位置来选择项目。但如果我选择了按钮,就不起作用了。我使用SelectedItem,如果您单击该项中的按钮,SelectedItem将不会被触发。
ListView链接到ItemSource,而ListView的SelectedItem绑定到属性
更多信息:语言为C#,IDE为Visual Studio 2010
我会留下我的xaml代码下面,谢谢.
XAML语言
<ListView x:Name="myListView"
Grid.Column="0"
Grid.Row="2"
Height="Auto"
Margin="0,0,0,0"
SelectionChanged="SchemaListView_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<ListViewItem Content="{Binding Path=Value}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
C#语言
void ReadData(string id)
{
var data = ExampleData.GetData(id);
myListView.ItemsSource = data.Results;
}
我尝试过在没有ItemTemplate和DataTemplate的情况下绑定,也尝试过在xaml中链接源代码,但没有成功
1条答案
按热度按时间yjghlzjz1#
ListView的
ItemTemplate
中不能有ListViewItem
。当
ItemsSource
集合的元素还不是ListViewItem时(通常它们从来都不是),框架将自动创建一个ListViewItem,它将成为每个数据项的“项容器”元素。这个自动生成的ListViewItem使用ItemTemplate作为它的ContentTemplate
。除此之外,当您未设定ListView的
View
属性时,请使用ListBox
而非ListView
。因此,不要使用
ListViewItem
,而使用ContentControl
或TextBlock
:如果只有一个content元素,则只需设置
DisplayMemberPath
属性: