private async void GetNotificationPositionsAsync() { var localNotificationPositions = new ObservableCollection <NameValue>(); await Task.Run(() => { localNotificationPositions.Add(new NameValue { Name = ResourceUtils.GetStringResource("Language_Bottom_Left"), Value = (int)NotificationPosition.BottomLeft }); localNotificationPositions.Add(new NameValue { Name = ResourceUtils.GetStringResource("Language_Top_Left"), Value = (int)NotificationPosition.TopLeft }); localNotificationPositions.Add(new NameValue { Name = ResourceUtils.GetStringResource("Language_Top_Right"), Value = (int)NotificationPosition.TopRight }); localNotificationPositions.Add(new NameValue { Name = ResourceUtils.GetStringResource("Language_Bottom_Right"), Value = (int)NotificationPosition.BottomRight }); }); this.NotificationPositions = localNotificationPositions; NameValue localSelectedNotificationPosition = null; await Task.Run(() => localSelectedNotificationPosition = NotificationPositions.Where((np) => np.Value == XmlSettingsClient.Instance.Get <int>("Behaviour", "NotificationPosition")).Select((np) => np).First()); this.SelectedNotificationPosition = localSelectedNotificationPosition; }
/// <summary> /// Sets the notification position. /// </summary> /// <param name="notificationPositions">The notification positions.</param> /// <param name="resubscribeOnly">if set to <c>true</c> [resubscribe only].</param> protected virtual void SetNotificationPosition(IEnumerable <INotificationPosition> notificationPositions = null, bool resubscribeOnly = false) { isNotificationPositionReloading = true; if (!resubscribeOnly && notificationPositions != null) { NotificationPositions = notificationPositions.ToAvaloniaList(); } notificationPositionChanged?.Dispose(); notificationPositionChanged = this.WhenAnyValue(p => p.NotificationPosition).Where(p => !isNotificationPositionReloading).Subscribe(s => { foreach (var item in NotificationPositions) { item.IsSelected = item == s; } SaveNotificationOption(); }).DisposeWith(Disposables); if (!resubscribeOnly && notificationPositions != null) { NotificationPosition = NotificationPositions.FirstOrDefault(p => p.IsSelected); } isNotificationPositionReloading = false; }