如何在ListView中显示一些虚拟数据

时间:2013-10-18 15:36:20

标签: c# wpf listview

我是C#的新手,我正在为软件开发原型。 我想创建一个类似结构的表:

Name                  Details        ActionButton
-------------------------------------------------
Name1                 Details1       Button
Name1                 Details1       Button
Name1                 Details1       Button

所以,我想从虚拟数据中填充此表的行。 无论我到目前为止发现了什么,都使用一些代码将listview绑定到某些数据源。 但是,我只想知道是否可以将数据直接添加到XAML

2 个答案:

答案 0 :(得分:1)

我想我误解了你的问题。您的案例中的解决方案可能是使用数据网格。

使用dummydata制作一些类,你可以绑定到.xaml文件中的datagrid

您需要知道的一切都应该在本教程中。

http://wpftutorial.net/DataGrid.html

希望它有所帮助。

答案 1 :(得分:0)

<强> XAML:

<!-- HEADER-->
   <StackPanel Orientation="Horizontal" >
                <TextBlock Width="250" TextAlignment="Center" Text="User"/>
                <TextBlock Width="250" TextAlignment="Center" Text="Details"/>
                <TextBlock Width="100" TextAlignment="Center" Text="Action"/>
            </StackPanel>

 <!--ListView-->
    <ListView x:Name="lb_Users">
      <ListView.ItemTemplate>
        <DataTemplate>
           <Grid Width="600">
              <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="250"/>
                 <ColumnDefinition Width="250"/>
                 <ColumnDefinition Width="100"/>
              </Grid.ColumnDefinitions>
             <TextBlock  Text="{Binding Name}" />
             <TextBlock  Text="{Binding Details}" />
             <Button Tag="{Binding}" Click="ActionButtonClick"/>
            </Grid>
         </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>

<强> C#

定义struct:

struct User
    {
        public string Name { get; set; }
        public string Details { get; set; }
    }

ListBox加载:

public void ShowList()
{
        List<User>Users=new List<User>();
        //Here we have to fill this list by some data.
        lb_Users.ItemSource=Users;
}

按钮活动:

private void ActionButtonClick(object sender, RoutedEventArgs e)
  {
       Button btn=sender as Button;
       User user=(User)Button.Tag;   //we gets our user  
      // do something else...
  }