Category / Section
How to disable the hyperlink based on cell value in GridHyperlinkColumn in WPF DataGrid (SfDataGrid)?
1 min read
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();
}
}
