我如何绑定 属性,它使用另一个静态 属性
How I can bind property, which use another static property
我在我的 progeсt (C#) 中使用了 mvvm 模式,但遇到了一些问题。
我的视图上有一个标签,标签的文本从我的 viewModel 绑定到 属性:
val label=new Label();
label.SetBinding<StatusViewModel>(Label.TextProperty, x=>x.TextProp);
这是我的视图模型,它实现了 INotifyPropertyChanged 接口:
class StatusViewModel
{
private string _textProp;
public string TextProp
{
get
{
return _textProp;
}
set
{
if(_textProp == value)
return _textProp;
_textProp=value;
OnPropertyChange();
}
}
}
但我有另一个静态 属性:
static class StaticClass
{
public static string StaticText {get; set; }
}
我想在 StatusViewModel 的 TextProp 属性 中使用这个静态 属性 StaticText。并且 StaticText 属性 会通知标签有关它的更改。
P.S。对于可能的错误,我很抱歉,我从脑海中输入了这段代码。
如果您绑定到 static
属性,您可能做错了:)
也就是说,初始绑定非常简单。您只需要添加一个 属性 即 returns 和 static
一个:
public string StaticTextRedirect
{
get { return StaticClass.StaticText; }
set { StaticClass.StaticText = value; }
}
PropertyChanged
事件是另一回事。当然,您可以从 StaticTextRedirect
属性 提高它,但是如果某些 other class 更改 属性 则不会触发.您可能只需要在静态 属性 的 setter 中引发自定义事件,客户端代码可以侦听并引发适当的 PropertyChanged
事件。
我在我的 progeсt (C#) 中使用了 mvvm 模式,但遇到了一些问题。 我的视图上有一个标签,标签的文本从我的 viewModel 绑定到 属性:
val label=new Label();
label.SetBinding<StatusViewModel>(Label.TextProperty, x=>x.TextProp);
这是我的视图模型,它实现了 INotifyPropertyChanged 接口:
class StatusViewModel
{
private string _textProp;
public string TextProp
{
get
{
return _textProp;
}
set
{
if(_textProp == value)
return _textProp;
_textProp=value;
OnPropertyChange();
}
}
}
但我有另一个静态 属性:
static class StaticClass
{
public static string StaticText {get; set; }
}
我想在 StatusViewModel 的 TextProp 属性 中使用这个静态 属性 StaticText。并且 StaticText 属性 会通知标签有关它的更改。
P.S。对于可能的错误,我很抱歉,我从脑海中输入了这段代码。
如果您绑定到 static
属性,您可能做错了:)
也就是说,初始绑定非常简单。您只需要添加一个 属性 即 returns 和 static
一个:
public string StaticTextRedirect
{
get { return StaticClass.StaticText; }
set { StaticClass.StaticText = value; }
}
PropertyChanged
事件是另一回事。当然,您可以从 StaticTextRedirect
属性 提高它,但是如果某些 other class 更改 属性 则不会触发.您可能只需要在静态 属性 的 setter 中引发自定义事件,客户端代码可以侦听并引发适当的 PropertyChanged
事件。