gpt4 book ai didi

wpf - 如何使用 mvvm 构建动态网格并绑定(bind)到 xaml

转载 作者:行者123 更新时间:2023-12-03 10:40:37 24 4
gpt4 key购买 nike

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

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

是否有任何关于如何将网格绑定(bind)到我可以查看的 xaml 的示例代码?这个我真的想不通!

谢谢

最佳答案

你可能会稍微错误地接近这个,很难从问题中说出来 -

通常,要在 MVVM 中显示一组动态 UI 元素,您需要将 ItemsControl 的 ItemsSource 属性绑定(bind)到 ObservableCollection。 ItemsControl ItemsTemplate 属性将 YourViewModel 对象转换为 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>

我没有测试过那个代码,它只是为了说明。还有其他方法可以将问题分解为 MVVM,这完全取决于情况。您必须提供更多详细信息,以便我们为您提供帮助。在 WPF 中很少需要使用代码来创建 UI 元素或将 UI 元素添加到其他 UIElement 等。

然而,在问题的确切行中需要注意的一点是,ItemsControl 可以绑定(bind)到一堆常规对象并使用它的模板从它们创建 UIElement,或者它可以绑定(bind)到 UIElement 列表,在这种情况下未应用模板(听起来这是您的情况)。

关于wpf - 如何使用 mvvm 构建动态网格并绑定(bind)到 xaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4453494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com