Żeby nie zapychać niepotrzebnym kodem wrzucam DataGrid z tylko jedną z kolumną.
Jeżeli chodzi o xaml to:
<Window
xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ORGANIZER" xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2" x:Class="MainWindow"
Title="TLD-CAD" Height="580" Width="750" Background="{x:Null}" Foreground="Black" AllowsTransparency="True" WindowStyle="None" Margin="0,0,0,0" ResizeMode="CanResizeWithGrip" MinHeight="580" MinWidth="750">
<Window.Resources>
<CollectionViewSource x:Key="TableViewSource" />
</Window.Resources>
<DataGrid x:Name="Datagrid1" ItemsSource="{Binding}" Margin="10,122,10,23" Background="{x:Null}" Foreground="White" BorderBrush="{x:Null}" AutoGenerateColumns="False" ScrollViewer.CanContentScroll="True" HorizontalScrollBarVisibility="Disabled" CanUserAddRows="False" RowDetailsVisibilityMode="Collapsed" >
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="Progress_BarColumn" Header="ZAAWANSOWANIE" Width="90" MinWidth="90" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border Name="ProgressBarBorder" BorderBrush="#FFE06767" BorderThickness="1" Margin="2">
<Grid>
<ProgressBar Name ="ProgressBar1" Grid.Row="0" Grid.Column="0" Minimum="0" Maximum="100" Value="{Binding progress_bar, Mode=OneWay}" ToolTip="{Binding progress_bar, Mode=OneWay}" Background="{x:Null}" BorderBrush="{x:Null}" BorderThickness="0" Margin="3" ForceCursor="False">
<ProgressBar.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF097BD4" Offset="0"/>
<GradientStop Color="#FF074F88" Offset="0.7"/>
</LinearGradientBrush>
</ProgressBar.Foreground>
</ProgressBar>
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding progress_bar_txt, Mode=OneWay}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Jeżeli chodzi o VB to:
Wczytanie danych nazwy plików zdanymi mam w ComboBox i zmieniam sobie tak źródło:
Imports System.Data
Class MainWindow
Private dt As DataTable
Private ds As DataSet
Private zrodlo As String
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs) Handles MyBase.Loaded
ds = New DataSet()
dt = New DataTable("Customer")
dt.Columns.Add("progress_bar")
dt.Columns.Add("progress_bar_txt")
ds.Tables.Add(dt)
Datagrid1.ItemsSource = dt.DefaultView
Dim katalog As New IO.DirectoryInfo("../")
Dim plik As IO.FileInfo() = katalog.GetFiles()
Dim nazwa As IO.FileInfo
For Each nazwa In plik
If nazwa.Extension = ".xml" Then
ComboBox_lista.Items.Add(System.IO.Path.GetFileNameWithoutExtension(nazwa.Name))
ComboBox_lista.SelectedIndex = 0
zrodlo = "../" & Convert.ToString(ComboBox_lista.SelectedItem) & ".xml"
End If
Next
dt.Clear()
Try
dt.ReadXml(zrodlo)
Catch ex As Exception
MessageBox.Show("Nie znaleziono pliku")
End Try
obliczenia_progress_bar()
End Sub
End Class
Kodu mam sporo wiec starałem się wybrać co istotne. Pytanie jak dobrać się do parametrów ProgressBar (kolor, wartość max itp.) z poziomu VB? Proszę o podpowiedzi. Z góry dziękuje.