Код: Выделить всё
private string selectedPath;
public string SelectedPath
{
get => selectedPath;
set
{
if (selectedPath == value) return;
selectedPath = value;
NotifyPropertyChanged(nameof(SelectedPath));
}
}
public ICommand ApplicationToggleButtonFilterCommand { get; }
< /code>
my togglebutton click Command < /h3>
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;
}
}
}
< /code>
my xaml < /h3>
< /code>
мой мультивальный конвертер < /h3>
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 все еще можно выбрать одновременно.
Что я попробовал
ul>
Обновление SelectedPath в моей команде - гарантирует, что только один элемент хранится в SelectedPath , но пользовательский интерфейс по -прежнему позволяет нескольким ToggleButtons оставаться проверенным.
Возвращение binding.donothing in convertback - предотвращает ошибки, но не решает проблему. что каждая кнопка получает уникальный путь. < /li>
< /ul>
ожидаемое поведение < /h3>
Нажмите один Togglebutton должен проверить это и снять все остальные. > Как я могу обеспечить соблюдение этого только одного Togglebutton проверяется за раз?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -at-a-time
Мобильная версия