Wpf 如何使用mvvm构建动态网格并绑定到xaml

Wpf 如何使用mvvm构建动态网格并绑定到xaml,wpf,mvvm,grid,Wpf,Mvvm,Grid,我正在计划一个WPF应用程序,它将在viewmodel中使用文本块构建动态网格,然后使用新网格刷新界面(xaml) 我已经完成了第一步,但在使用新网格刷新视图时遇到问题 有没有关于如何将网格绑定到xaml的示例代码可以让我看一下??我真的搞不懂 谢谢你可能对这个问题有点误解,从这个问题上很难说- 通常,要在MVVM中显示一组动态UI元素,需要将ItemsControl的ItemsSource属性绑定到ObservableCollection。ItemsControl ItemsTemplate属

我正在计划一个WPF应用程序,它将在viewmodel中使用文本块构建动态网格,然后使用新网格刷新界面(xaml)

我已经完成了第一步,但在使用新网格刷新视图时遇到问题

有没有关于如何将网格绑定到xaml的示例代码可以让我看一下??我真的搞不懂


谢谢

你可能对这个问题有点误解,从这个问题上很难说-

通常,要在MVVM中显示一组动态UI元素,需要将ItemsControl的ItemsSource属性绑定到ObservableCollection。ItemsControl ItemsTemplate属性将YourViewModel对象转换为UIElement,UIElement可以是TextBlock或任何您想要的样式

例如:

// model
class Person
{
   public string Name {get; private set;}
}

// view model
class MainViewModel
{
  public ObservableCollection<Person> People {get; private set;}
}

//view
<UserControl DataContext="{Binding MyMainViewModelObject}">
  <ItemsControl ItemsSource="{Binding People}">
    <ItemsControl.ItemsTemplate>
      <DataTemplate>
        <TextBlock Text="{Binding Name}"/>
      </DataTemplate>/
    </ItemsControl.ItemsTemplate>
  </ItemsControl>
</UserControl>
//模型
班主任
{
公共字符串名称{get;private set;}
}
//视图模型
类MainViewModel
{
公共可观察集合人员{get;private set;}
}
//看法
/
我还没有测试那段代码,只是为了举例说明。还有其他方法可以将问题分解为MVVM,这取决于具体情况。你必须给我们更多的细节来帮助你。在WPF中,很少需要使用代码来创建UI元素或将UI元素添加到其他UIElement等


然而,沿着问题的具体路线需要注意的一点是,ItemsControl可以绑定到一组常规对象并使用其模板从中创建UIElements,也可以绑定到UIElements列表,在这种情况下不应用模板(听起来像是这样的情况)

你可能有点错误,从这个问题上很难说-

通常,要在MVVM中显示一组动态UI元素,需要将ItemsControl的ItemsSource属性绑定到ObservableCollection。ItemsControl ItemsTemplate属性将YourViewModel对象转换为UIElement,UIElement可以是TextBlock或任何您想要的样式

例如:

// model
class Person
{
   public string Name {get; private set;}
}

// view model
class MainViewModel
{
  public ObservableCollection<Person> People {get; private set;}
}

//view
<UserControl DataContext="{Binding MyMainViewModelObject}">
  <ItemsControl ItemsSource="{Binding People}">
    <ItemsControl.ItemsTemplate>
      <DataTemplate>
        <TextBlock Text="{Binding Name}"/>
      </DataTemplate>/
    </ItemsControl.ItemsTemplate>
  </ItemsControl>
</UserControl>
//模型
班主任
{
公共字符串名称{get;private set;}
}
//视图模型
类MainViewModel
{
公共可观察集合人员{get;private set;}
}
//看法
/
我还没有测试那段代码,只是为了举例说明。还有其他方法可以将问题分解为MVVM,这取决于具体情况。你必须给我们更多的细节来帮助你。在WPF中,很少需要使用代码来创建UI元素或将UI元素添加到其他UIElement等


然而,沿着问题的具体路线需要注意的一点是,ItemsControl可以绑定到一组常规对象并使用其模板从中创建UIElements,也可以绑定到UIElements列表,在这种情况下不应用模板(听起来像是这样的情况)

谢谢你,伙计。这个问题很难解释。我需要创建一个网格,因为我不知道行/列的数量,在某些情况下还需要使用颜色和上下文菜单自定义单元格。所有这些创建网格的过程,我都是在viewmodel中完成的。我只需要用viewmodel中创建的网格刷新视图。谢谢。这个问题很难解释。我需要创建一个网格,因为我不知道行/列的数量,在某些情况下还需要使用颜色和上下文菜单自定义单元格。所有这些创建网格的过程,我都是在viewmodel中完成的。我唯一需要的是使用viewmodel中创建的网格刷新视图。