0

I have a datagrid like below

**strong text**

 <sdk:DataGrid AutoGenerateColumns="False" Height="Auto" MaxHeight="500" 
                          HorizontalAlignment="Left" Margin="5" Name="_EmployeeGrid" 
                          ItemsSource="{Binding Path= Employees,Mode=TwoWay}"
                          HorizontalScrollBarVisibility="Auto"
                          ScrollViewer.HorizontalScrollBarVisibility="Auto"
                          ScrollViewer.VerticalScrollBarVisibility="Auto"
                          Visibility="Visible"
                          VerticalAlignment="Top" Width="Auto">
                                    <sdk:DataGrid.Columns>

                                        <sdk:DataGridTextColumn Header="Employee ID" IsReadOnly="True" Binding="{Binding Path=EmpID}"/>
                                        <sdk:DataGridTemplateColumn Header="Name" SortMemberPath="EmpID">
                                            <sdk:DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <HyperlinkButton VerticalAlignment="Center" NavigateUri="{Binding Path=EmpID, 
                                            Converter={StaticResource NavigatePropertyUriConverter}, ConverterParameter=EmpView}"
                                            Content= "{Binding Path=EmpID}" >
                                                    </HyperlinkButton>
                                                    <!--<HyperlinkButton NavigateUri= "{ Binding Converter={StaticResource navigateConv}, ConverterParameter=/Property/IssuesView?}" VerticalAlignment="Center"
                                                     Content="{Binding Path=PropertyId}"
                                                         HorizontalAlignment="Right" Margin="5"/>-->
                                                </DataTemplate>
                                            </sdk:DataGridTemplateColumn.CellTemplate>
                                        </sdk:DataGridTemplateColumn>


                                        <!--<sdk:DataGridTextColumn Header="Property #" IsReadOnly="True" Binding="{Binding Path=PropertyId}"/>-->
                                        <sdk:DataGridTextColumn Header="Address" IsReadOnly="True" Binding="{Binding Path=Address}"/>
                                        <sdk:DataGridTextColumn Header="Category" IsReadOnly="True" Binding="{Binding Path=CategoryName}"/>
                                        <sdk:DataGridTextColumn Header="Phone" IsReadOnly="True" Binding="{Binding Path=UnitId}" Visibility="Collapsed"/>



                                        <!--<sdk:DataGridTextColumn Header="Notes" Binding="{Binding Comments}" IsReadOnly="False" />-->


                                        <sdk:DataGridTemplateColumn x:Name="Notes1" Header="Notes">
                                            <sdk:DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <StackPanel Orientation="Horizontal" >
                                                        <TextBlock  MaxWidth="200"  TextAlignment="Left" TextWrapping= "Wrap" Text="{Binding Path=Comments, Mode=OneWay}" Width="200" />
                                                        <HyperlinkButton Name="btnEllipsis" Visibility="{Binding EllipsisVisibility,Source={StaticResource ViewModel}}" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="15" Content="..."  ToolTipService.ToolTip="Click For More" Command="{Binding NotesCommand,Source={StaticResource ViewModel}}" CommandParameter="{Binding}" >
                                                        </HyperlinkButton>


                                                    </StackPanel>
                                                </DataTemplate>
                                            </sdk:DataGridTemplateColumn.CellTemplate>
                                        </sdk:DataGridTemplateColumn>


                                </sdk:DataGrid>

and associated property in viewmodel as below strong text

string _ellipsisVisibility;

        public string EllipsisVisibility
        {
            get { return _ellipsisVisibility; }
            set
            {
                if (_ellipsisVisibility != value)
                {
                    _ellipsisVisibility = value;
                    RaisePropertyChanged("EllipsisVisibility");

                }
            }
        }

and setting it to EllipsisVisibility="Collapsed"; and EllipsisVisibility="Visible";

There are two questions 1. It is not working to show or hide column 2. Need to show the hyperlink button in few rows and or hide in few rows based on some condition like Rowdatabound event in asp.net.

How to do can anyone please help???

sam
  • 1

1 Answers1

0

(1) DataGrid column visibility is, unfortunately, not a dependency property. This means it can't engage in databinding. Some work-arounds to this involve subclassing the column type you're interested in.

(2) To show/hide a particular control, based on the data for that row, I would use a converter. Or create a new property on that entity type to directly bind to.

Community
  • 1
  • 1
Mashton
  • 6,037
  • 2
  • 25
  • 35