none
RRS feed

全部回复

  • WPF邦定系统提供了很强大的功能,我们数据源的更新,就可以直接影响到UI的更新。所以你的问题,只需要将一个ListView邦定到一个集合中,然后后台在集合添加数据,UI的绑定会自动生成并且添加节点到ListView。

    简单的例子:

    XAML:

      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="*"/>
          <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <ListView ItemsSource="{Binding}" VerticalContentAlignment="Stretch">
          <ListView.ItemsPanel>
            <ItemsPanelTemplate>
              <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
          </ListView.ItemsPanel>
          <ListView.ItemTemplate>
            <DataTemplate>
              <Grid Margin="10">
                <Grid.RowDefinitions>
                  <RowDefinition Height="Auto"/>
                  <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <TextBlock Text="{Binding Title}" Margin="4"/>
                <TextBlock Text="{Binding Value}" Grid.Row="1" Margin="4"/>
              </Grid>
            </DataTemplate>
          </ListView.ItemTemplate>
        </ListView>
        
        <Button Content="Add" Click="Button_Click" Margin="5" Grid.Row="1"/>
      </Grid>


    C#:

      public partial class MainWindow : Window
      {
        private ObservableCollection<Item> Items = new ObservableCollection<Item>();
        public MainWindow()
        {
          InitializeComponent();
    
          this.DataContext = Items;
        }
    
        private void Button_Click(object sender, RoutedEventArgs e)
        {
          Items.Add(new Item() { Title = "a", Value = 1 });
          Items.Add(new Item() { Title = "b", Value = 2 });
          Items.Add(new Item() { Title = "c", Value = 3 });
        }
      }
    
      public class Item
      {
        public string Title { get; set; }
        public int Value { get; set; }
      }

    我的例子只是在功能上给你演示,截面和控件样式上没有做过多修饰。WPF提供了灵活的样式定义和模板定义,你可以自先学习下如何设置样式和模板来修改这些外观。

    还有,很多的其他控件比如ListBox, DataGrid, ComboBox 等等都属于ItemsControl类,都适用这种方式来在后台中添加和管理其每一项数据,我们通常叫做列表绑定,请先学习下相关章节。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月25日 9:05
    版主