在wpf中将面板动态添加到网格中

时间:2015-12-07 11:40:47

标签: c# wpf data-binding wpf-controls wpftoolkit

我想根据wpf中的一些计数动态地将面板添加到网格中。但不是代码背后或编程。仅使用xaml我需要动态创建面板到网格中。有没有任何框架可以做到这一点?请帮帮我。

1 个答案:

答案 0 :(得分:1)

使用MVVM模式中的ViewModel,创建一个ObservableCollection并将ItemsControl的ItemsSource绑定到ObservableCollection。

public class ViewModel : INotifyPropertyChanged
{ 
  public ViewModel() { Objects = new ObservableCollection<object>(); }

  public ObservableCollection<object> Objects { get;set; }
}

然后在视图中:

<Grid>
  <ItemsControl ItemsSource="{Binding Path=Objects}">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <Panel />
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  <ItemsControl>
</Grid>

然后在视图的代码隐藏中:

DataContext = new ViewModel();

这将在ObservableCollection中为每个项目创建一个面板。

相关问题