WPF: When Adding items to a listview they become empty - wpf

Im a bit new to WPF and I cant seem to figure out why the items I add to a listview are displaying empty.
Here is my XAML
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="30" DisplayMemberBinding="{Binding Source={StaticResource BillingIncrements}, Path=ID}" />
<GridViewColumn Header="Bill Group" DisplayMemberBinding="{Binding Source={StaticResource BillingIncrements}, Path=Description}" />
</GridView>
</ListView.View>
Here is the code
lstBillGroups.Items.Add(New StlReportPlugins.BillingIncrements With {.ID = 100, .Description = "Test"})
Here is the output
(couldnt post a pic because i dont have enough points)
Link to pic
Any Ideas?

This is how your XAML should look like
<ListView ItemsSource={Binding Source={StaticResource BillingIncrements}}>
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="30" DisplayMemberBinding="{Binding ID}" />
<GridViewColumn Header="Bill Group" DisplayMemberBinding="{Binding Description}"/>
</GridView>
</ListView.View>
</ListView>
If you have a look at output window in VS while debugging your app you'll see a bunch of WPF binding errors, which helps a lot to spot mistakes.

Related

How to bind double click on row to command in GridView that inside ListView in MVVM WPF

I'm prrety new to wpf, and i try to make a GridView that inside ListView to response to double click on row in the view
I try to make this-
<ListView
ItemsSource="{Binding Products}">
<ListView.InputBindings>
<MouseBinding
MouseAction="LeftDoubleClick"
Command="{Binding Test}" />
</ListView.InputBindings>
<ListView.View>
<GridView>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn
Header="ID"
DisplayMemberBinding="{Binding ID}" />
<GridViewColumn
Header="Name"
DisplayMemberBinding="{Binding Name}" />
<GridViewColumn
Header="Category"
DisplayMemberBinding="{Binding Category}" />
<GridViewColumn
Header="Price"
DisplayMemberBinding="{Binding Price}" />
</GridView>
</ListView.View>
<ListView />
when Test is an ICommand property in the view model.
But it's not responding to double click.
What am I getting wrong, and mabye there is another way?

WPF ListView Column width

I used list view with a single column, I would like this column with the same size list view with.
I mean Just one column fill the all with of the list view.
I tried this but didn't work...
<ListView Grid.Row="1" Grid.Column="1" x:Name="LvErrorList">
<ListView.View>
<GridView>
<GridViewColumn Width="{Binding ActualWidth, ElementName=LvErrorList}" Header="Status" DisplayMemberBinding="{Binding ErrorMessage}" />
</GridView>
</ListView.View>
</ListView>
I tried
<GridViewColumn Width="Auto" Header="Status" DisplayMemberBinding="{Binding ErrorMessage}" />
But some text are longer than the with of the ListView.
Becaues i don't know the user screen size i can't set max-width property.
Does anyone know how to fix this please?
You can try this way instead.
<ListView Grid.Row="1" Grid.Column="1" x:Name="LvErrorList">
<ListView.View>
<GridView>
<GridViewColumn Header="Status" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ErrorMessage}" Width="{Binding ElementName=LvErrorList,Path=ActualWidth}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>

Adding a user control to a GridViewColumn

I'm trying to add a custom user control of mine to a GridViewColumn and all I get is the ToString() output of that control.
my code:
<GridViewColumn Header="Progress" HeaderContainerStyle="{StaticResource MyHeaderStyle}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding ProgressBar, Converter={StaticResource nullGuestImageConverter}}" Width="150" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
I have tried before
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Status" DisplayMemberBinding="{Binding ProgressBar}" />
to no avail.
please help

how to Style gridview rows during runtime in wpf?

<ListView.View>
<GridView>
<GridViewColumn Header="اسم الشركة" DisplayMemberBinding="{Binding Path=company_name}" Width="200" />
<GridViewColumn Header="رمز الشركة" DisplayMemberBinding="{Binding Path=symbol}" Width="Auto" />
<GridViewColumn Header="سعر السهم" DisplayMemberBinding="{Binding Path=price}" Width="Auto" />
<GridViewColumn Header="نسبة التغير" DisplayMemberBinding="{Binding Path=change_percent}" Width="Auto" />
</GridView>
</ListView.View>
I have the previous XAML tags to define the listview I am using in my wpf - C# application
I want to give each row in my listview a specific color that would be chosen during runtime
I know it might be a silly question but I need it badly and I have looked for it alot with no results
Can you help me ?
Is this something you are looking for?

WPF control ListView

In C# ListView -> ListItem -> subItem.
How to add a new entry to a list using WPF?
To add data such as ListView WF, you must use binding.
For example:
<ListView ItemsSource="{Binding}" x:Name="lv">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Show data of two column(ID, Name) with this example
Your question is hardly intelligible but let's just shoot into the blue:
Adding items in XAML:
<ListView>
<ListViewItem>
<!-- Item Content -->
</ListViewItem>
</ListView>
In code behind:
listView.Items.Add(new ListViewItem() { Content = content });
(ListViewItems do not have sub-items by the way)

Resources