if (col.DataTypeName == "image")
{
GridViewImageColumn imageCol = new GridViewImageColumn();
imageCol.DataMemberBinding = new Binding(col.ColumnName);
imageCol.Header = col.ColumnName;
if (col.IsHidden == true)
imageCol.IsVisible = false;
imageCol.UniqueName = col.ColumnName;
imageCol.DataType = Type.GetType(col.SystemDataType);
imageCol.FilterMemberType = Type.GetType(col.SystemDataType);
gridQueryResult.Columns.Add(imageCol);
}
else
{
GridViewDataColumn dataCol = new GridViewDataColumn();
dataCol.DataMemberBinding = new Binding(col.ColumnName);
dataCol.Header = col.ColumnName;
if (col.IsHidden == true)
dataCol.IsVisible = false;
dataCol.UniqueName = col.ColumnName;
dataCol.DataType = Type.GetType(col.SystemDataType);
dataCol.FilterMemberType = Type.GetType(col.SystemDataType);
gridQueryResult.Columns.Add(dataCol);
}
<Window x:Name="ShellWindow" x:Class="Green.ShellView" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:cal="http://www.caliburnproject.org"> <Window.Resources> <DataTemplate x:Key="GroupTemplate"> <TextBlock Text="{Binding}" Foreground="Gray" Margin="20" FontWeight="Bold" FontSize="20" FontFamily="Segoe UI"/> </DataTemplate> <Style TargetType="telerik:Tile"> <Setter Property="Margin" Value="20,15,5,0"/> </Style> <Style TargetType="TextBlock" x:Key="TileLabelStyle"> <Setter Property="FontSize" Value="14"/> <Setter Property="FontFamily" Value="Segoe UI"/> <Setter Property="Margin" Value="10"/> <Setter Property="Foreground" Value="White"/> <Setter Property="VerticalAlignment" Value="Bottom"/> </Style> <Style TargetType="TextBlock" x:Key="LiveTileLabelStyle"> <Setter Property="FontSize" Value="24"/> <Setter Property="FontFamily" Value="Segoe UI"/> <Setter Property="Margin" Value="5"/> <Setter Property="Foreground" Value="White"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="HorizontalAlignment" Value="Center"/> </Style> </Window.Resources> <telerik:RadDockPanel x:Name="LayoutRoot" LastChildFill="True"> <telerik:RadExpander x:Name="UserInfoContainer" ExpandDirection="Up" IsExpanded="True" telerik:RadDockPanel.Dock="Top"> <telerik:RadExpander.Header> <Grid HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <telerik:Label Content="User Information"/> <Rectangle Grid.Column="1" Height="2" Margin="5,0,0,0" VerticalAlignment="Center" Fill="Gray"/> </Grid> </telerik:RadExpander.Header> <telerik:RadExpander.Content> <StackPanel Orientation="Horizontal"> <TextBlock Text="Good Day Sir!!!"/> <Ellipse Width="33" Height="33" Margin="5" Fill="Yellow"/> <Ellipse Width="33" Height="33" Margin="5" Fill="Blue"/> <Ellipse Width="33" Height="33" Margin="5" Fill="Red"/> </StackPanel> </telerik:RadExpander.Content> </telerik:RadExpander> <telerik:RadTileList x:Name="AppLaunchPad" GroupTemplate="{StaticResource GroupTemplate}" ScrollViewer.HorizontalScrollBarVisibility="Visible" cal:Message.Attach="[Event SelectionChanged] = [Action OpenDoorway($eventArgs)]"> <telerik:Tile x:Name="PendingAuthTile" Background="BlueViolet" TileType="Single" Group="First"> <Grid> <TextBlock Text="Pending" Style="{StaticResource TileLabelStyle}"/> <TextBlock x:Name="PendingAuthCount" Text="0" Style="{StaticResource LiveTileLabelStyle}"/> </Grid> </telerik:Tile> <telerik:Tile x:Name="CreateAuthTile" Group="First" Background="Green" TileType="Single" cal:Message.Attach="[Event MouseDoubleClick] = [Action CreateAuth] "> <TextBlock Text="Create" Style="{StaticResource TileLabelStyle}"/> </telerik:Tile> <telerik:Tile x:Name="ModifyAuthTile" Group="Second" Background="CadetBlue" TileType="Single"> <TextBlock Text="Modify" Style="{StaticResource TileLabelStyle}"/> </telerik:Tile> <telerik:Tile x:Name="DeleteAuthTile" Group="Second" Background="Sienna" TileType="Single"> <TextBlock Text="Delete" Style="{StaticResource TileLabelStyle}"/> </telerik:Tile> </telerik:RadTileList> </telerik:RadDockPanel></Window>Imports SystemImports Microsoft.Win32Imports Telerik.WindowsImports Telerik.Windows.ControlsPublic Class OpenFileDialogEx Public Shared ReadOnly FilterProperty As DependencyProperty = DependencyProperty.RegisterAttached("Filter", GetType(String), GetType(OpenFileDialogEx), New PropertyMetadata("All documents (.*)|*.*", Sub(d, e) AttachFileDialog(DirectCast(d, TextBox), e))) Public Shared Function GetFilter(element As UIElement) As String Return DirectCast(element.GetValue(FilterProperty), String) End Function Public Shared Sub SetFilter(element As UIElement, value As String) element.SetValue(FilterProperty, value) End Sub Private Shared Sub AttachFileDialog(textBox As TextBox, args As DependencyPropertyChangedEventArgs) Dim parent = DirectCast(textBox.Parent, Panel) ''added this because there was a problem with double binding and it was causing the filebrowser dialog to pop up twice Dim tag = TryCast(parent.Tag, String) If Not IsNothing(tag) Then Return parent.Tag = "already bound" AddHandler parent.Loaded, Sub() Dim button = DirectCast(parent.Children.Cast(Of Object)().FirstOrDefault(Function(x) TypeOf x Is Button), Button) Dim filter = DirectCast(args.NewValue, String) AddHandler button.Click, Sub(s, e) Dim dlg = New OpenFileDialog() dlg.Filter = filter Dim result = dlg.ShowDialog() If result = True Then textBox.Text = dlg.FileName End If End Sub End Sub End SubEnd ClassPublic Class DataFormImageFileBrowser Inherits DataFormDataField Protected Overrides Function GetControlBindingProperty() As DependencyProperty Return TextBox.TextProperty End Function Protected Overrides Function GetControl() As Control Dim fd = New OpenFileDialogUC("Image file (pdf,png,gif,jpg,bmp,tif,emf,wmf)|*.pdf;*.png;*.gif;*.jpg;*.bmp;*.jpeg;*.tiff;*.tif;*.emf;*.wmf") Dim dependencyProperty As DependencyProperty = GetControlBindingProperty() If Not IsNothing(DataMemberBinding) Then Dim binding = DataMemberBinding fd.FileNameTbx.SetBinding(dependencyProperty, binding) End If Return fd End FunctionEnd Class<UserControl x:Class="OpenFileDialogUC" xmlns:src="clr-namespace:CarWashInventoryManagement" mc:Ignorable="d" > <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBox x:Name="FileNameTbx" MinWidth="100" src:OpenFileDialogEx.Filter="{Binding FilterStr}" Grid.Column="0" /> <Button Grid.Column="1">Browse</Button> </Grid></UserControl>Public Class OpenFileDialogUC Public Property FilterStr As String = String.Empty Public Sub New(_filter As String) FilterStr = _filter DataContext = Me InitializeComponent() End SubEnd ClassElseIf e.PropertyName = "FileName" Then Dim df = New DataFormImageFileBrowser() df.Label = e.DataField.Label df.DataMemberBinding = e.DataField.DataMemberBinding e.DataField = df e.DataField.Label = "File Name"<RadSplitContainer Dock="DockedTop" Orientation="Vertical"> <Items> <RadPaneGroup RelativeWidth="100" RelativeHeight="100" SplitterChange="422,180833333333" SelectedIndex="0"> <Items> <RadPane SerializationTag="LineAppearancesPane" IsDockable="True" /> </Items> </RadPaneGroup> <RadPaneGroup RelativeWidth="100" RelativeHeight="300" SplitterChange="554,5425" SelectedIndex="0"> <Items> <RadPane SerializationTag="CallControlWheelPane" IsDockable="True" Header="" CanFloat="False" /> </Items> </RadPaneGroup> </Items></RadSplitContainer>