在我的自定义控件中,我有3个属性(State,Value,Count),带有Enum(Dock,Float,Tab)的State属性,如果Enum值(Float)表示我想隐藏(可浏览的False)Value属性in WPF。是否有可能使用州的PropertyChanged执行此操作。
答案 0 :(得分:1)
在State的setter中,只需检查值是什么。如果它是浮动隐藏,否则取消隐藏。
private StateEnum _state;
public StateEnum State {
get { return _state; }
set
{
if (value == StateEnum.Float)
{
// Hide stuff
}
else
{
// Show stuff
}
name = value;
}
}
答案 1 :(得分:0)
通常情况下,您无法有条理地隐藏房产。 但是,有一个技巧。
您可以为value属性定义值接口和包装器,并为值和非值状态实现。
示例:
public interface IValueWrapper {}
public class BasicValueWrapper : IValueWrapper
{
public int Value { get; set; }
}
public class NoneValueWrapper : IValueWrapper {}
主类:
public class MainClass
{
private StateEnum _state;
public StateEnum State {
get { return _state; }
set
{
if (value == StateEnum.Float)
{
// Hide stuff
this.Value= new NoneValueWrapper();
}
else
{
// Show stuff
this.Value= new BasicValueWrapper();
}
name = value;
}
}
public IValueWrapper Value { get; set; }
}