Я занимаюсь разработкой нового пользовательского элемента управления в VisualStudio и задаюсь вопросом, можно ли ограничить выбор свойств во время разработки.
Чтобы проиллюстрировать проблему, есть два свойства, которые зависят друг от друга - ориентация и текстовая сторона. Сам элемент управления является прямоугольным, а ориентация может быть вертикальной или горизонтальной. То, что я хочу, это ограничить свойство текстовой стороны, чтобы, если ориентация была вертикальной, текстовая сторона могла быть только левой или правой, а если ориентация горизонтальной, текстовая сторона могла быть только верхней или нижней.
Ясно, что вы можете сделать это во время выполнения в методе набора свойств, проверив другие свойства, но я хотел бы сделать это в окне свойств как время разработки, чтобы не было шансов, что кто-то выберет неправильную комбинацию свойств, а затем ничего или при запуске проекта отображается неверная информация.
В настоящее время у меня есть это:
public enum VerticalTextSide { Left, Right }
public enum HorizontalTextSide { Top, Bottom }
public enum TextSide { }
public enum Orientation { Vertical, Horizontal }
private VerticalTextSide vts;
private HorizontalTextSide hts;
private TextSide db;
private Orientation or;
public TextSide textSide
{
get
{
if (or == Orientation.Vertical)
{
[need help!!]
}
else
{
[need help!!]
}
}
set
{
[need help!!]
}
}
public Orientation orientation
{
get
{
return or;
}
set
{
or = value;
}
}
Где мне нужна помощь, это вернуть и установить значения перечисления в зависимости от выбранной ориентации. Может быть, есть другой способ, возможно?
Надеюсь, это выполнимо?
Спасибо