WPF: индикатор выполнения в ListView - PullRequest
7 голосов
/ 10 ноября 2009

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

string Name
string Location
int Progress

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

Ответы [ 3 ]

10 голосов
/ 10 ноября 2009
<ListView ItemsSource="{Binding PersonList}">  
    <ListView.View> 
        <GridView>  
            <GridViewColumn Width="140" Header="GameName" DisplayMemberBinding="{Binding Name}"/>
            <GridViewColumn Width="140" Header="Progress">
                <GridViewColumn.CellTemplate>  
                    <DataTemplate>
                        <ProgressBar Maximum="100" Value="{Binding Progress}"/>
                    </DataTemplate>
                 </GridViewColumn.CellTemplate>  
            </GridViewColumn>
        </GridView>  
    </ListView.View>  
</ListView>
5 голосов
/ 10 ноября 2009

Ваш 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;
1 голос
/ 10 ноября 2009

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

<ProgressBar Maximum="50" Value="{Binding Progress}" ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...