我有一个常量值(某些限制)我在viewmodel中工作,但我也需要它在我的视图中。最好的方法是什么?
常数:
private const int maxLevel = 4;
我真的需要为每个常量创建一个属性并像这样绑定它:
private const int _maxLevel = 4;
public int MaxLevel
{
get { return _maxLevel; }
set
{
RaisePropertyChanged("MaxLevel");
}
}
也许我可以将所有这些值存储在* .resx文件中,就像我用字符串一样?这里最好的做法是什么?
答案 0 :(得分:0)
失去了二传手。仅需要通知绑定元素值已更改的属性更改通知。由于MaxLevel是一个常量,它的值永远不会改变,因此你不需要它。你不能直接绑定到常量,因为实际上编译器会将值嵌入到在编译时访问它的代码中,因此对于不太可能需要将来修改的常量属性,我通常只做这样的事情:
public int MaxLevel { get {return 4;} }
答案 1 :(得分:0)
您可以这样做:
namespace Foo.ViewModels
{
public class MainWindowViewModel{
public const int MaxLevel = 4;
...
}
}
并在视图中使用它:
<Label Content="{x:Static Foo.ViewModels:MainWindowViewModel.MaxLevel}"></Label>
或者一般来说,绑定到:
"{x:Static MyNameSpace:MyClass.MY_CONSTANT}"