【发布时间】:2011-07-02 10:35:06
【问题描述】:
我正在从事一个从后端获取数据的项目,即数据不断动态变化,前端不必关心。 我需要将此数据公开给 wpf,以便有人可以通过表达式混合将事物绑定到 wpf 中的数据。只读很好。 简而言之,如果我的控制流程大致如下,我如何在类型为“Foo”的类“foo”的实例中对属性 Foostring 进行数据绑定:
public partial class Window1 : window
{
public Window1()
{
InitializeComponent();
Foo foo = new foo;
}
// my text box is defined in the xaml of this window.
}
public ref class Foo
{
Foo()
{
FooProperty = "work,dammit";
}
private string _foostring="";
public string FooProperty
{
get {return _foostring;}
set {foostring=value;}
}
}
如果在 Foo 类的构造函数中我在文本框上设置绑定,并且如果我从 INotifyPropertyChanged 继承并在 FooProperty 的设置上引发事件,我可以让事情正常工作。 但是,这不会将此变量公开给表达式混合——它并不是真正设置数据源。我试图在 xaml 中设置绑定,它编译但不更新。 任何帮助将不胜感激!
【问题讨论】:
-
我很困惑。您想从 xaml 到属性进行简单的绑定吗?这应该没问题:在
Foo类中实现INotifyPropertyChanged,将这个类的实例设置为这个窗口的DataContext,然后绑定到这个属性。请记住,每次属性更改时,您都需要引发PropertyChanged事件。我看不出有什么问题。我不知道你说的是什么意思:“在 Foo 类的构造函数中,我在文本框上设置了绑定”——这绝对不是,你应该做什么。 -
谢谢,这正是我所需要的。
-
我需要做的是在 xaml 中实例化对象,然后在 c++ 中引用它。我在 c++ 中实例化它并在 xaml 中引用它,当我创建一个静态资源时,xaml 正在创建它自己的实例并且没有得到我的任何更新。为了子孙后代,最终的 xaml 最终成为上面的详细解决方案。
-
如果您添加您的解决方案作为答案,我会选择它作为选择的解决方案!
-
如果 Pako 不打算发布您应该自己发布的答案,也请尽快接受。
标签: c# wpf xaml data-binding binding