WPF: индикатор выполнения в ListView

Я пытаюсь отобразить информацию из моего ObservableCollection<MyData> в файле ListView. MyData имеет:

string Name
string Location
int Progress

Используя DataBinding, я могу отобразить Name и Location для всех элементов в моем ObservableCollection<MyData> в их собственном столбце. Но как я могу добавить столбец Progress со столбцом ProgressBar внутри? Progress — это процент.


person Warpin    schedule 10.11.2009    source источник


Ответы (2)


Ваш ListView в XAML:

<ListView x:Name="DataView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <Label Content="{Binding Path=Name}" />
                    <ProgressBar Height="20" Width="100" Value="{Binding Path=Progress}" />
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
</ListView>

Код программной части:

internal class MyData
{
    public string Name { get; set; }
    public int Progress { get; set; }
}

...

var items = new ObservableCollection<MyData>();

items.Add(new MyData() { Name = "Some", Progress = 25 });
items.Add(new MyData() { Name = "Another", Progress = 91 });

DataView.ItemsSource = items;
person SMART_n    schedule 10.11.2009

Просто привяжите свойство Progress в MyData к ProgressBar.Value и установите ожидаемое максимальное значение как ProgressBar.Maximum, например 50 ниже.

<ProgressBar Maximum="50" Value="{Binding Progress}" ..
person Jobi Joy    schedule 10.11.2009
comment
Где я могу найти это в своем xaml? ‹Grid Name=myGrid› ‹ListView ItemsSource={Binding PersonList}› ‹ListView.View› ‹GridView› ‹GridViewColumn Width=140 Header=GameName DisplayMemberBinding={Binding Name}/› ‹/GridView› ‹/ListView.View› ‹ /Список› ‹/Сетка› - person Warpin; 10.11.2009