如果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綁定變量的類型將爲yourPropertyType。 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」例。
我找不出什麼'如果hideRow它不是一個表的字段:'的意思。對不起,但英語不是我的母語,由於語法錯誤,這對我沒有任何意義。 – WoIIe
下面代碼中的'hideRow'是一個假變量。實際上,這是您需要實施的定製邏輯。 – progpow
謝謝,這讓我走上了正軌。 @Wolle我試圖糾正它,希望按照它的意圖。我不得不添加一個IValueConverter.ConvertBack方法,因爲它不會編譯 - 否則我不知道是否有解決方法?最後對我來說並不重要,但是我確實想知道是否有可能傳遞整個綁定的行對象,而不僅僅是一個字段。 – njplumridge