Если hideRow не является полем таблицы (т.е. не столбец в DataGridRow):
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding AnyProp, Converter={StaticResource hiddenConverter}}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
И реализовать конвертер с вашей логикой. Тип связанной переменной AnyProp, приведенной выше, будет ниже вашего типаPropertyType. AnyProp может быть любым из столбцов в строке.
[ValueConversion(typeof(yourPropType), typeof(bool))]
public class hiddenConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (hideRow == "Yes")
{
return true;
}
else
{
return false;
}
}
}
«значение» будет AnyProp, и он может быть использован в логике, которая определяет, является ли или не показывать строку, то или иное решение может быть основано на чем-то совершенно другое, например, как «hideRow» в пример.
Я не могу понять, что 'if hideRow это не поле таблицы:' значит. Извините, но английский не мой родной язык, и это не имеет для меня никакого смысла из-за неправильной грамматики. – WoIIe
'hideRow' в коде ниже - это поддельная переменная. На самом деле это обычная логика, которую вам нужно реализовать. – progpow
Спасибо, это заставило меня на правильном пути. @Wolle Я пытался исправить это, надеюсь, так, как он был предназначен. Мне пришлось добавить метод IValueConverter.ConvertBack, поскольку он не будет компилироваться в противном случае - я не знаю, есть ли что-то в этом роде? Для меня это не имело значения, но я задался вопросом, возможно ли передать весь объект связанной строки, а не только одно поле. – njplumridge