我想根据wpf中的一些计数动态地将面板添加到网格中。但不是代码背后或编程。仅使用xaml我需要动态创建面板到网格中。有没有任何框架可以做到这一点?请帮帮我。
答案 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中为每个项目创建一个面板。