C# 在WPF XAML中传递对象

C# 在WPF XAML中传递对象,c#,wpf,xaml,C#,Wpf,Xaml,我对编写GUI代码还不熟悉,我想知道是否有人能告诉我是否有办法将xaml中的对象传递给另一个FrameworkElement的构造函数 现在,我正在使用代码隐藏发送一个对象,该对象不是从XAML中允许的任何类型派生的。但是,如果我要使传递的类也派生自frameworkElement,那么是否可以将其作为对象传递给构造函数,或者为其设置一个字段 比如说 或者属性只能是普通的值类型,除了默认的构造函数之外,没有其他方法可以使用构造函数吗 正如我所说的,我目前只是将东西传递给xaml附带的C#文件中

我对编写GUI代码还不熟悉,我想知道是否有人能告诉我是否有办法将xaml中的对象传递给另一个FrameworkElement的构造函数

现在,我正在使用代码隐藏发送一个对象,该对象不是从XAML中允许的任何类型派生的。但是,如果我要使传递的类也派生自frameworkElement,那么是否可以将其作为对象传递给构造函数,或者为其设置一个字段

比如说

或者属性只能是普通的值类型,除了默认的构造函数之外,没有其他方法可以使用构造函数吗

正如我所说的,我目前只是将东西传递给xaml附带的C#文件中的构造函数,但我觉得如果可以用xaml传递的话会很方便。

你做错了

除非您正在编写一个真正的“用户控件”,否则视图代码或视图构造函数中应该很少有逻辑。相反,几乎所有的逻辑都应该在视图模型或通过数据绑定进入视图的模型类型中

当然,这并非总是100%可能的,在这种情况下,您要查找的“字段”称为DataContext。您可以将其设置为一个对象,然后订阅
DataContextChanged
事件,并在那里执行所需的任何视图特定逻辑


有关更多信息,请参阅其他内容。

您能提供任何代码吗?我还是太困惑了。我不想打扰你,但我真的想了解如何遵守MVVM原则。我读了很多书,但我认为我没有抓住我做错的最基本的部分。我正在尝试实现一个新的用户控件,我将数据存储在一个列表中,我想点击一个加载按钮,让它将一个用户控件加载到网格中。用户控件需要列表中的信号才能知道显示什么。如何避免在构造函数中传递它?还是可以,因为我实际上是在做一个自定义控件?对数据上下文做了更多的阅读。这是我需要说明的想法的要点。创建父对象的数据上下文,并将字段设置为列表2。在另一个对象的C#或XAML中的某个地方引用该列表。仍然没有足够的细节来帮助您。根据我认为您要问的问题,您可能需要一个
IObservable
而不是一个列表,您将该列表绑定到父对象中的一个items控件,并使用
DataTemplate
DataTemplateSector
来具体化集合中每个项的控件。如果您需要将集合传递给子控件,还可以查看在子控件上声明一个
DependencyProperty
,并将集合绑定到该控件。谢谢,我想您正在回答我的问题。你的句子也会对我的谷歌搜索有很大帮助。非常感谢。我想后者可能就是我想要的。在阅读了几篇关于数据绑定的文章之后,我想我明白了我应该做什么。我很确定每个人一开始都在回答我的问题,但我之前并没有真正理解。这么多的术语到处都是。再次感谢