I'd like to bind a ListView item inside a user control. to display custom formated text within this List.
I'de done this without user control. So the following code was working well:
<StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="left">
<ListView ItemsSource="{x:Bind WeatherViewModel.WeatherForecast}" >
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:WeatherForecast">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- temperature -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="47"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="47"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind MaxTemperature}"
FontSize="16"
Grid.Column="0"
FontFamily="Sergoe UI"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
<TextBlock Text="|"
FontSize="16"
Grid.Column="1"
FontFamily="Sergoe UI"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
<TextBlock Text="{x:Bind MinTemperature}"
FontSize="16"
Grid.Column="2"
FontFamily="Sergoe UI"
HorizontalAlignment="left"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
</Grid>
</TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</StackPanel>
Next I tried to create a user control for this ListView
<StackPanel Orientation="Horizontal" HorizontalAlignment="left">
<ListView ItemsSource="{Binding Path=.}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- temperature -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="47"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="47"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MaxTemperature}"
FontSize="16"
Grid.Column="0"
FontFamily="Sergoe UI"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
<TextBlock Text="|"
FontSize="16"
Grid.Column="1"
FontFamily="Sergoe UI"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
<TextBlock Text="{Binding MinTemperature}"
FontSize="16"
Grid.Column="2"
FontFamily="Sergoe UI"
HorizontalAlignment="left"
VerticalAlignment="Center"
Style="{StaticResource BasicTextBlock}"/>
</Grid>
</TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</StackPanel>
and I set the dataContext of this view
this.WeatherForecastView.DataContext = this.WUWeatherViewModel.Forecast;
But how can I define the Datatype of the DataTemplate? Is the Binding for the ItemSource of the ListView correct?