Код: Выделить всё
public enum TilesetDimensions
{
[EnumDescriptor(identifier: "FixedSize")]
FixedSize,
[EnumDescriptor(identifier: "VariableSize")]
VariableSize
}
Я специально пытаюсь скрыть метку после ComboBox в зависимости от выбранного значения. Код axaml для ComboBox выглядит следующим образом. Привязки TilesetTypes, SelectedTilesetType и IsFixedSize определены в ViewModel.
Код: Выделить всё
Код: Выделить всё
public ObservableCollection TilesetTypes { get; } =
new ObservableCollection(Enum.GetValues());
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(IsFixedSize))]
private TilesetDimensions selectedTilesetType = TilesetDimensions.FixedSize;
public bool IsFixedSize => SelectedTilesetType == TilesetDimensions.FixedSize;
Я пытался добавить событие, чтобы перехватить его, и попытался вручную назначить событие PropertyChanged в ViewModel. Точки останова не достигаются, ничего не регистрируется, когда выбранное значение изменяется во время выполнения. Я перепробовал все возможные варианты, даже попробовал перейти на ReactiveUI, но ЭТО тоже не смогло изменить видимость.
Код: Выделить всё
partial void OnSelectedTilesetTypeChanging(TilesetDimensions oldValue, TilesetDimensions newValue)
{
Debug.WriteLine($"Selected tileset type changing from {oldValue} to {newValue}");
}
Код: Выделить всё
PropertyChanged += (sender, args) =>
{
if (args.PropertyName == nameof(SelectedTilesetType))
{
Debug.WriteLine($"Selected tileset type changed to {SelectedTilesetType}");
}
};
Подробнее здесь: https://stackoverflow.com/questions/785 ... ng-to-work