C# 从另一个控件子级更新控件

C# 从另一个控件子级更新控件,c#,xaml,C#,Xaml,我在尝试更新曲面元素的组件时遇到一些问题。我不知道我对这个问题的看法是否错误,因为我对这个话题还不熟悉 我的观点由下图表示 根据菜单中选择的选项,将不同的用户控件作为StackPanel的唯一子控件加载,但我遇到了从加载的用户控件更新Listview的问题,例如:当我保存一个新项目时,我需要为Listview中的项目列表充电,您可以在您的子控件上创建一个事件 public delegate void HandleNAMEOFYOURHANDLEEVENT(); 在你的孩子课堂上 public

我在尝试更新曲面元素的组件时遇到一些问题。我不知道我对这个问题的看法是否错误,因为我对这个话题还不熟悉

我的观点由下图表示


根据菜单中选择的选项,将不同的用户控件作为StackPanel的唯一子控件加载,但我遇到了从加载的用户控件更新Listview的问题,例如:当我保存一个新项目时,我需要为Listview中的项目列表充电,您可以在您的子控件上创建一个事件

public delegate void HandleNAMEOFYOURHANDLEEVENT();
在你的孩子课堂上

public event HandleNAMEOFYOURHANDLEEVENT yourInstance;
在你的孩子课堂上使用它

if (!ReferenceEquals(yourInstance, null))
                        {
                            yourInstance();
                        }

您可以像其他事件一样在父级上声明它。

MVVM将是一种很好的模式。如果在控件之间传递数据有问题,为什么不在统一数据层之上引入它们呢?考虑这一点:

菜单中有三个单选按钮,每个按钮的
都被选中
属性绑定到相应
用户控件的
可见性
属性

StackPanel
容纳所有三个
UserControls

ListView
绑定到ViewModel的
列表

每个
用户控件都绑定到
列表视图。选择editem
:其中一个控件使用
TextBlock
进行只读,另一个控件使用
TextBox
进行编辑。第三个将在
列表中创建新项目。您必须为每个项目创建
ItemTemplate
,或者创建一个
UserControl
(因为它们看起来非常相似)并使用
DataTemplateSelector


如果您不熟悉MVVM,这是一个良好的开端。对于一个简单的项目,您也可以使用一个现有的框架,如

,最好直接使用模式或使用框架?我不想安装不必要的东西,让我的项目变得复杂。我想说的是,自己开始,了解关键的东西(数据上下文、绑定、命令等),但在某个阶段,你会发现预先制作的框架将为你节省大量时间。你是对的。我已经安装了MVVM Light,但文档肯定不好;像这样的教程还有很多需要改进的地方