Wenn Sie diese Komponente nicht erneut verwenden oder als "allgemein" definieren müssen, kann eine einfachere und am besten fokussierte Lösung die folgende sein.
einen Konverter mit diesem Code erstellen:
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace WpfApplication1
{
public class CountToFontWeightConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return DependencyProperty.UnsetValue;
var count = (int)value;
if (count > 10)
return FontWeights.Bold;
else
return FontWeights.Normal;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
Und es dann auf diese Weise verwenden:
<DataGrid.Resources>
<local:CountToFontWeightConverter x:Key="CountToFontWeightConverter"/>
<Style TargetType="{x:Type DataGridCell}" x:Key="DGCellStyle">
<Setter Property="FontWeight"
Value="{Binding OperativeCount,
Converter={StaticResource CountToFontWeightConverter}}"/>
</Style>
</DataGrid.Resources>
Offensichtlich, wenn die OperativeCount
Eigenschaftsänderungen während der Laufzeit Ihrer App, es Mitteilungen über die Änderungen erhöhen müssen , über INotifyPropertyChanged
Implementierung oder über Reactive
Bibliothek.
Sie können diese Lösung ein wenig verallgemeinern, indem Sie das Limit von 10
als Parameter für den Konverter übergeben, anstatt ihn im Konverter selbst fest zu codieren, damit Sie ihn an mehreren Stellen mit anderem Limit verwenden können.
können Sie bitte eine der Antworten als die richtige? Oder kannst du uns sagen, was falsch ist oder fehlt? Dies kann ein nützliches Feedback für uns und auch für andere SO-Benutzer sein, die diese Frage sehen. –