Код: Выделить всё
private string selectedPath;
public string SelectedPath
{
get => selectedPath;
set
{
if (selectedPath == value) return;
selectedPath = value;
NotifyPropertyChanged(nameof(SelectedPath));
}
}
public ICommand ApplicationToggleButtonFilterCommand { get; }
Код: Выделить всё
private void SetSelectedPath(object parameter)
{
if (parameter is ClipboardItem item)
{
// If the same item is clicked again, unselect it
if (SelectedPath == item.Path)
{
SelectedPath = null; // Deselect everything
}
else
{
SelectedPath = item.Path;
}
}
}
Код: Выделить всё
Код: Выделить всё
using System;
using System.Globalization;
using System.Windows.Data;
using ClipKeeper.Source.MVVM.Model;
namespace ClipKeeper.Source.Convertors
{
public class ToggleButtonSelectedApplicationConverter: IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values.Length != 2) return false; // Must have two values.
var item = values[0] as ClipboardItem;
var selectedPath = values[1] as string;
if (item == null || selectedPath == null) return false;
return item.Path == selectedPath;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return new object[] { Binding.DoNothing, Binding.DoNothing };
}
}
}
, несмотря на то, что привязанность с многочисленным , который сравнивает PATH каждого буферизащика в SelectedPath , несколько ToggleButtons все еще можно выбрать одновременно. /> Обновление SelectedPath в моей команде - гарантирует, что только один элемент хранится в SelectedPath , но пользовательский интерфейс по -прежнему позволяет нескольким ToggleButtons оставаться проверенным.
returning binding.donothing in Convertback - предотвращает ошибки, но не решает проблему.
Обеспечение каждого Togglebutton < /code> связано с правильной точки зрения - проверена с помощью отладки, что каждая кнопка получает уникальный путь.
ожидаемое поведение
Щелкнирование One Toggebutton должен проверить это и снять все остальные.
Нажмите одну и ту же кнопку снова, чтобы снять ее. >
ожидаемое поведение < /strong>
нажимает один Togglebutton < /code> должен проверить его и снять все остальные. Br/> Как я могу применять только один ToggleButton проверяется за раз?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -at-a-time
Мобильная версия