【问题标题】:WPF ListView example showing all possible kinds of columns including hypelink and checkboxWPF ListView 示例显示所有可能类型的列,包括超链接和复选框
【发布时间】:2026-02-16 20:25:03
【问题描述】:

任何人都可以提供指向综合示例的链接或包含所有可能类型的 ListView 列的书籍的链接。 ListView 绑定到 Observable 集合但只读(除了主要用于驱动应用程序选定行的某些操作的复选框)。

【问题讨论】:

    标签: wpf listview


    【解决方案1】:

    将其粘贴到 Kaxaml:

    <Page
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Grid>  
        <Grid.Resources>
          <XmlDataProvider x:Key="Data">
            <x:XData>
              <Data xmlns="">
                <Item ID="1" Desc="Google" URL="http://www.google.com" Acceptable="true"/>
                <Item ID="2" Desc="*" URL="http://www.*.com" Acceptable="true"/>
                <Item ID="3" Desc="4chan" URL="http://www.4chan.org" Acceptable="false"/>
              </Data>
            </x:XData>
          </XmlDataProvider>
        </Grid.Resources>
        <ListView DataContext="{Binding Source={StaticResource Data}, XPath=/Data}"
          ItemsSource="{Binding XPath=Item}">
          <ListView.View>
            <GridView>
              <GridViewColumn Header="ID" DisplayMemberBinding="{Binding XPath=@ID}"/>
              <GridViewColumn Header="Description" DisplayMemberBinding="{Binding XPath=@Desc}"/>
              <GridViewColumn Header="URL">
                <GridViewColumn.CellTemplate>
                  <DataTemplate>
                    <TextBlock>
                      <Hyperlink NavigateUri="{Binding XPath=@URL}">
                        <TextBlock Text="{Binding XPath=@URL}"/>
                      </Hyperlink>
                    </TextBlock>
                  </DataTemplate>
                </GridViewColumn.CellTemplate>
              </GridViewColumn>
              <GridViewColumn Header="Acceptable">
                <GridViewColumn.CellTemplate>
                  <DataTemplate>
                    <CheckBox IsChecked="{Binding XPath=@Acceptable}"/>
                  </DataTemplate>
                </GridViewColumn.CellTemplate>
              </GridViewColumn>
            </GridView>
          </ListView.View>
          </ListView>
      </Grid>
    </Page>
    

    为了使这个(更多)有用,您需要将其保存为 Page.xaml 并创建一个新的 XAML 文件:

    <NavigationWindow
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Source="Page.xaml"/>
    

    否则,单击超链接会将您带到相关页面,您将留在该页面。

    【讨论】:

      【解决方案2】: