Files
BeWoPlaner/BeWo/Converter/IsLastItemToBoolMultiConverter.cs

40 lines
1.2 KiB
C#

using System;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
namespace BeWo.Converter
{
/// <summary>
/// Erwartet: [0] = Item, [1] = ItemsControl, [2] = Items.Count (nur als Aktualisierungs-Trigger).
/// Liefert true, wenn das Item das letzte Element im ItemsControl ist.
/// </summary>
public class IsLastItemToBoolMultiConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
try
{
if (values is null || values.Length < 2)
return false;
if (!(values[1] is ItemsControl itemsControl))
return false;
var items = itemsControl.Items;
return items.Count > 0 && ReferenceEquals(items[items.Count - 1], values[0]);
}
catch (Exception)
{
return false;
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}