Hi everyone,
In the UWP app I'm working on one page I have downloads multiple files (mostly PDF's) concurrently for users attending board meetings and lists them in a DataGrid with some columns being defined in DataTemplates. The business requirements for this grid specify that while each item is downloading the DataGrid row should be disabled but from reading the docs and googling I cannot see any way to do this.
I am very new to the Telerik DataGrid though so still hoping this can be done, even if it involves some sort of hack - does anyone know how I could achieve this?
I have listed just the DataGrid XAML below but can add the DataTemplate code if needed.
<Grid:RadDataGrid x:Name="agendaDataGrid"
Grid.Row="4"
Margin="48,0,48,24"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{x:Bind ViewModel.AgendaItems, Mode=OneWay}"
UserGroupMode="Disabled"
UserFilterMode="Disabled"
UserColumnReorderMode="None"
UserSortMode="None"
AutoGenerateColumns="False"
GridLinesVisibility="Horizontal"
BorderBrush="Transparent"
BorderThickness="0"
SelectedItem="{x:Bind ViewModel.SelectedAgendaItem, Mode=TwoWay}"
LayoutUpdated="OnLayoutUpdated">
<Grid:RadDataGrid.Columns>
<!-- Read state of item -->
<Grid:DataGridTemplateColumn SizeMode="Auto"
CellContentTemplate="{StaticResource ReadStateDataTemplate}">
<Grid:DataGridTemplateColumn.Header>
<Border CornerRadius="45"
Background="{ThemeResource SystemControlDisabledChromeDisabledLowBrush}"
Height="10"
Width="10"
/>
</Grid:DataGridTemplateColumn.Header>
</Grid:DataGridTemplateColumn>
<!-- Item position -->
<Grid:DataGridNumericalColumn Header="#"
PropertyName="DisplayPosition"
SizeMode="Auto" />
<!-- Download status -->
<Grid:DataGridTemplateColumn SizeMode="Auto" CellContentTemplateSelector="{StaticResource DownloadAgendaItemTemplateSelector}">
<Grid:DataGridTemplateColumn.Header>
<TextBlock FontFamily="{ThemeResource SymbolThemeFontFamily}"
Text="" />
</Grid:DataGridTemplateColumn.Header>
</Grid:DataGridTemplateColumn>
<!-- Download status -->
<Grid:DataGridTemplateColumn SizeMode="Auto"
CellContentTemplateSelector="{StaticResource MediaAgendaItemDataTemplateSelector}">
<Grid:DataGridTemplateColumn.Header>
<TextBlock FontFamily="{ThemeResource SymbolThemeFontFamily}"
Text="" />
</Grid:DataGridTemplateColumn.Header>
</Grid:DataGridTemplateColumn>
<!-- Item name -->
<Grid:DataGridTextColumn x:Name="ItemNameColumn"
Header="Item name"
PropertyName="Name"
SizeMode="Stretch"
/>
<!-- Item type/style -->
<Grid:DataGridTextColumn Header="Type"
PropertyName="Style"
SizeMode="Auto" />
<!-- Estimated time of each item (or video length) -->
<Grid:DataGridTextColumn Header="Timing"
PropertyName="Timing"
SizeMode="Auto" />
<!-- Number of pages (PDF only)-->
<Grid:DataGridTextColumn Header="Pages"
PropertyName="Pages"
SizeMode="Auto" />
<!-- Colour of item in documents navigation bar in PdfAgendaItem -->
<Grid:DataGridTemplateColumn SizeMode="Fixed"
Width="5"
CellContentTemplate="{StaticResource ItemColourDataTemplate}" />
</Grid:RadDataGrid.Columns>
<FlyoutBase.AttachedFlyout>
<Flyout Placement="Full"
FlyoutPresenterStyle="{StaticResource VoteFlyoutPresenterStyle}">
<Grid Width="430">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap"
Text="{x:Bind ViewModel.SelectedVoteItem.VoteTitle, Mode=OneWay}" />
<TextBlock TextWrapping="Wrap"
Text="{x:Bind ViewModel.SelectedVoteItem.VoteDescription, Mode=OneWay}"
Grid.Row="1" />
<ListView Grid.Row="3"
ItemsSource="{x:Bind ViewModel.SelectedVoteItem.VoteOptions, Mode=OneWay}"
ScrollViewer.VerticalScrollBarVisibility="Disabled" />
</Grid>
</Flyout>
</FlyoutBase.AttachedFlyout>
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior ComparisonCondition="NotEqual"
Binding="{x:Bind ViewModel.SelectedVoteItem, Mode=OneWay}">
<components:OpenFlyoutAction TargetObject="{x:Bind agendaDataGrid, Mode=OneWay}" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Grid:RadDataGrid>