Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205

Несколько названий Window в Авалонии

12.03.2022, 13:16. Показов 3086. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как в Авалонии для Window задать 2 названия окна? Первое, например, будет выводить по умолчанию Name, а второе - OtherName (в зависимости от логического условия)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2022, 13:16
Ответы с готовыми решениями:

Как совместить несколько названий
Есть массив с названиями элементов. Array ( => LED светильник 160x135mm 580Lm 5W 6400К IP44 встраиваемый КРУГ =>...

Window.open открывает несколько окон
у меня в расширении под хром есть строка открывающая нужную страницу в новом окне window.open('https://www.......'); но почему то...

*Двумерные массивы.Задается одномерный массив с элементами строкового типа. Каждый из элементов содержит несколько названий городов с произвольным
*Двумерные массивы Задается одномерный массив с элементами строкового типа. Каждый из элементов содержит несколько названий городов с...

29
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
14.03.2022, 18:00  [ТС]
Студворк — интернет-сервис помощи студентам
Элд Хасп, свойство Title вычисляется, в зависимости от того, загружена определенная задача или нет. Класс Task представляет эту задачу.

Забыла написать:

C#
1
2
Task task = new Task();
 public bool IsActive => task!=null;
Если не загружена задача - то одно название окна, если загружена - то название вычисляется в методе GetNameWindow.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
14.03.2022, 21:06
Цитата Сообщение от Sun1212 Посмотреть сообщение
Забыла написать:
Я не знаю вашей реализации ViewModelBase, поэтому пишу для BaseInpc:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainWindowViewModel : BaseInpc
{
    public string Name => "NameProject";
 
    public string? _title;
    public string? Title {get => _title; private set => Set(ref _title, value);}
 
    private bool _isActive;
    public bool IsActive {get => _isActive; private set => Set(ref _isActive, value);}
 
   private Task _task;
   private Task Task {get => _task; set => Set(ref _task, value);}
 
   protected override void OnPropertyChanged(string propertyName, object oldValue, object newValue)
   {
       base.OnPropertyChanged(propertyName, oldValue, newValue);
 
       // Проверяется имя изменившегося свойства и производятся необходимые действия
       if (propertyName == nameof(Task))
       {
           IsActive = Task != null
           if(IsActive)
               Title = task.GetNameTask;
       }
   }
   
}
Написал в меру моего понимания вашего кода.
1
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
16.03.2022, 21:28  [ТС]
Элд Хасп, посмотрите, пожалуйста, в конвертере можно так написать?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class TitleConverter : IMultiValueConverter
    {
        object IMultiValueConverter.Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
           var titleName;
 
            if (values == null) 
                throw new ArgumentNullException();
 
          if (!IsActive) 
                titleName = (string)values[0];
 
          else titleName = (string)values[1];
 
            return titleName;
 
        }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
16.03.2022, 22:00
Цитата Сообщение от Sun1212 Посмотреть сообщение
в конвертере можно так написать?
А IsActive вы откуда берёте?
Это же изменяемое значение и вы не может просто константу какую-то задать.
Его ОБЯЗАТЕЛЬНО нужно передавать по привязке.
0
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
17.03.2022, 08:30  [ТС]
Элд Хасп, изменила код:

XML
1
2
3
4
5
6
<Window.Title>
<MultiBinding Mode="OneWay" Converter="{local:TitleConverter}">
            <Binding Path="Name" />
            <Binding Path="IsActive" />
        </MultiBinding>
 </Window.Title>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class TitleConverter : IMultiValueConverter
    {
        object IMultiValueConverter.Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
                       if (values == null) 
                throw new ArgumentNullException();
 
        if (values[0] is not bool name)
                return DependencyProperty.UnsetValue;
 
            return name
                ? values[1]
                : values[2];
}
           
 public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
 
   public static TitleConverter Instance { get; } = new TitleConverter();


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 public class MainWindowViewModel : ViewModelBase
   
{
    public string Name => "NameProject";
 
    public string? _title;
    public string? Title {get => _title; private set => Set(ref _title, value);}
 
    private bool _isActive;
    public bool IsActive {get => _isActive; private set => Set(ref _isActive, value);}
 
   private Task _task;
   private Task Task {get => _task; set => Set(ref _task, value);}
 
   protected override void OnPropertyChanged(string propertyName, object oldValue, object newValue)
   {
       base.OnPropertyChanged(propertyName, oldValue, newValue);
 
       // Проверяется имя изменившегося свойства и производятся необходимые действия
       if (propertyName == nameof(Task))
       {
          
           if(IsActive)
               Title = task.GetNameTask;
       }
   }
}
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
17.03.2022, 10:09
Цитата Сообщение от Sun1212 Посмотреть сообщение
изменила код:
Вы передаёте в мультибиндинг две привязки, а конвертер у вас ожидает трёх значений.

"IsActive" у вас передаётся вторым значением, а конвертер ожидает булевое значение первым.

Я же вам дал полный код конвертера и его использование в сообщении #8.
Что в нём непонятного?
0
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
17.03.2022, 12:32  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вы передаёте в мультибиндинг две привязки, а конвертер у вас ожидает трёх значений.
Извините за глупый вопрос, но как понять, что конвертер ожидает именно 3 значения?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
17.03.2022, 12:43
Цитата Сообщение от Sun1212 Посмотреть сообщение
Извините за глупый вопрос, но как понять, что конвертер ожидает именно 3 значения?
C#
8
9
10
11
12
13
        if (values[0] is not bool name)    // Первое значение
                return DependencyProperty.UnsetValue;
 
            return name
                ? values[1]                 // Второе значение
                : values[2];               // Третье значение
Входной массив values формируется по значениям привязок в мульбиндинге.
Сколько в нём привязок - столько и будет элементов в values и в таком же порядке как были заданы привязки.
0
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
17.03.2022, 12:47  [ТС]
Элд Хасп, да, это понятно, описка вышла. Извиняюсь
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
27.03.2022, 16:20
limeniye, можете привести небольшой пример по использованию мультиконвертера DictionaryKeyToValueConverter? Заранее спасибо!
Извините, что с таким большим опозданием отреагировал на Ваше обращение, и Элд Хасп, я надеюсь, уже Вам ответил (не перечитывал тему, но уверен).

Сейчас, по политическим причинам, у меня, к сожалению, нет желания и возможности Вам ответить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.03.2022, 16:20

Чтение названий всех папок из папки "Profiles" и вывод этих названий в ListBox
Мне надо устроить выбор профиля для загрузки игры. Все файлы одного профиля хранятся в папке с названием ника в папке Profiles. Например...

Нужно ли отписываться от Window.Closing после того как window закрылся?
привет есть форма я подписался на событие Closing пришло событие - форма закрылась нужно ли мне отписаться от данного события - не...

Обработчик window.onload блокирует window.onresize. Что делать?
Два обработчика конфликтуют. Когда их два, тогда onload блокирует другой, если без onload, тогда onresize работает нормально. И в onload и...

Вызов Window.ShowDialog() срабатывает как Window.Show(), т.е. я могу нажимать на другие окна
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой. У меня есть окно, которое выполняет некоторые действия всё время работы...

Window является свойством глобального объекта Window
если объект window является свойством глобального объекта Window, то почему запись: Window.window // =&gt; undefined


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru