WPF ToggleButton Group - Nur eine Taste gleichzeitig überprüft [Duplikat]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 WPF ToggleButton Group - Nur eine Taste gleichzeitig überprüft [Duplikat]

Post by Anonymous »

Ich habe eine itemsControl in meiner WPF -Anwendung, in der eine Liste von ToggleButtons angezeigt wird. Jeder ToggleButton repräsentiert einen Dateipfad, und ich möchte, dass nur eine Schaltfläche gleichzeitig ausgewählt wird. Wenn Sie auf eine Schaltfläche klicken, sollten Sie eine ausgewählte Eigenschaft in My ViewModel aktualisieren, um sicherzustellen, dass alle anderen Schaltflächen deaktiviert sind. pre class = "Lang-cs PrettyPrint-Override">

Code: Select all

private string selectedPath;
public string SelectedPath
{
get => selectedPath;
set
{
if (selectedPath == value) return;
selectedPath = value;
NotifyPropertyChanged(nameof(SelectedPath));
}
}

public ICommand ApplicationToggleButtonFilterCommand { get; }
< /code>
 Mein ToggleButton-Klick-Befehl < /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>
 Mein XAML < /h3>
























< /code>
 Mein Multivalu-Konverter < /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 };
}

}
}
Problem
Trotz der Bindung von ISCECKED an einen Multibinding , der den Pfad von jedem ClipboardItem In den SelectedPath kann mehrere ToggleButtons gleichzeitig ausgewählt werden. ul>
Aktualisieren von SelectedPath In meinem Befehl stellt sicher, dass nur ein Element in SelectedPath gespeichert ist. Die Benutzeroberfläche ermöglicht jedoch immer noch mehrere ToggleButtons überprüft.
Rückgabebindung. Diese Taste empfängt einen eindeutigen Pfad. sollte es überprüfen und alle anderen deaktivieren. > Wie kann ich durchsetzen, dass nur ein ToggleButton gleichzeitig überprüft wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post