Category / Section
How to disable the hyperlink based on cell value in GridHyperlinkColumn in WPF DataGrid (SfDataGrid)?
You can disable the HyperLink in GridHyperLinkColumn based on cell value using converter in WPF DataGrid (SfDataGrid).
XAML
<Window.Resources>
<local:converter x:Key="converter" />
<Style TargetType="Syncfusion:GridCell">
<Style.Resources>
<Style TargetType="Hyperlink">
<Setter Property="IsEnabled" Value="{Binding RelativeSource={RelativeSource AncestorType=Syncfusion:GridCell}, Converter={StaticResource converter}}" />
</Style>
</Style.Resources>
</Style>
</Window.Resources>
<Grid>
<Syncfusion:SfDataGrid Name="datagrid"
AllowEditing="True"
AutoGenerateColumns="False"
ItemsSource="{Binding EmployeeDetails}">
<Syncfusion:SfDataGrid.Columns>
<Syncfusion:GridHyperlinkColumn MappingName="EmployeeName" />
<Syncfusion:GridHyperlinkColumn MappingName="EmployeeArea" />
<Syncfusion:GridTextColumn MappingName="EmployeeAge" />
<Syncfusion:GridTextColumn MappingName="EmployeeGender" />
</Syncfusion:SfDataGrid.Columns>
</Syncfusion:SfDataGrid>
</Grid>
C#
public class Converter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var data = (value as GridCell).ColumnBase as DataColumnBase;
var columnName = data.GridColumn.MappingName;
if (data.GridColumn is GridHyperlinkColumn && columnName == "EmployeeArea")
{
var gridCell = value as GridCell;
var getDataContext = gridCell.DataContext as Model;
//Disable HyperLinkColumn column based on Review column false value.
var getProperty = getDataContext.Review;
return getProperty;
}
return true;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
