4

我在尝试更新表面元素的组件时遇到了一些问题。我不知道我解决问题的方法是否错误,因为我是这个话题的新手。

我的观点如下图所示

在此处输入图像描述

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

4

2 回答 2

1

MVVM 将是一个很好的模式。如果您在控件之间传递数据时遇到问题 - 为什么不在统一数据层之上引入它们呢?考虑一下:

菜单中的三个单选按钮,每个按钮的IsChecked属性都绑定到Visibility各自的属性UserControl

StackPanel持有所有三个UserControls

ListView绑定到 ViewModel 的List<Item>

您的每一个都UserControls绑定到ListView.SelectedItem:其中一个TextBlock用于只读,一个TextBox用于编辑。第三个将在您的List<Item>. 您必须ItemTemplate为每个创建或创建一个UserControl(因为它们看起来非常相似)并使用DataTemplateSelector.

如果您不熟悉 MVVM ,这里是一个好的开始。您还可以使用现有框架之一,例如MVVM Light

于 2012-04-27T06:17:04.533 回答
0

您可以为您的孩子创建一个事件

public delegate void HandleNAMEOFYOURHANDLEEVENT();

在你的孩子班上

public event HandleNAMEOFYOURHANDLEEVENT yourInstance;

在您的孩子课堂上使用它

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

并且您像其他事件一样向您的父母声明它。

于 2012-04-27T06:09:03.023 回答