将 Gridview 添加到导致 UI 设计更改的静态模板
Add Gridview to a static template causing UI design changes
我是xaml的新手..刚开始学习。
我使用网格设计了一个静态模板。我需要这个网格根据基于 C#
的对象重复
因此我包含了 GridView 和绑定。
在添加 Gridview 之前
enter image description here
将网格视图添加到网格后
enter image description here
我的代码在XAML
<GridView ItemsSource="{Binding Source={StaticResource UpcomingEvent}}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" Padding="0"
Margin="0,0,0,0" Grid.Column="0" Height="auto">
<GridView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid Name="DataLabels">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="9*" />
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="7">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="#FFD3D3D3" Offset="0" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Grid Margin="7">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock FontSize="30" Text="{Binding Date}"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Month}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Year}"></TextBlock>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Heading}"></TextBlock>
<TextBlock Grid.Row="1" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Description}"></TextBlock>
</Grid>
<TextBlock Grid.Column="2" FontSize="15" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Time}"></TextBlock>
</Grid>
<Border Grid.Row="1" BorderBrush="#FFD3D3D3" BorderThickness="1" Margin="10,0,0,0"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
C#代码:
public List<UpcommingEvent> GetUpcomingEvent()
{
List<UpcommingEvent> data = new List<UpcommingEvent>();
data.Add(new UpcommingEvent() { Date = "2", Time = "00:45AM", Description = "fds My first dynamic message 1", Heading = "Fist Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "3", Time = "01:45AM", Description = "rewd My first dynamic message 2", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "4", Time = "01:45AM", Description = "fdf My first dynamic message 3", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "5", Time = "01:00PM", Description = "vfc My first dynamic message 4", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "6", Time = "12:45PM", Description = "kjh My first dynamic message 5", Heading = "Second Message", Month = "Dec", Year = "2015" });
return data;
}
public DashboardPage()
{
this.InitializeComponent();
UpcomingEvent.Source = GetUpcomingEvent();
}
是什么导致动态 UI 与静态不同,我应该如何解决它?
谢谢
首先,您输入的是 GridView 而不是 ListView。 GridView 中不存在 ItemTemplate。
我对你的模板做了一些修改:
<ListView x:Name="LstView1">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid Name="DataLabels" Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="75" />
<ColumnDefinition Width="9*" />
<ColumnDefinition Width="4*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="7">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="Red" Offset="0" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Grid Margin="7" Background="Purple">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock FontSize="30" HorizontalAlignment="Center" Text="{Binding Date}"></TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Center" Text="{Binding Month}"></TextBlock>
<TextBlock Grid.Row="2" HorizontalAlignment="Center" Text="{Binding Year}"></TextBlock>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Heading}"></TextBlock>
<TextBlock Grid.Row="1" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Description}"></TextBlock>
</Grid>
<TextBlock Background="Yellow" Grid.Column="2" FontSize="15" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Time}"></TextBlock>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
检查模板并判断它是否符合您的需要。
我是xaml的新手..刚开始学习。
我使用网格设计了一个静态模板。我需要这个网格根据基于 C#
的对象重复因此我包含了 GridView 和绑定。
在添加 Gridview 之前 enter image description here
将网格视图添加到网格后 enter image description here
我的代码在XAML
<GridView ItemsSource="{Binding Source={StaticResource UpcomingEvent}}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" Padding="0"
Margin="0,0,0,0" Grid.Column="0" Height="auto">
<GridView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid Name="DataLabels">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="9*" />
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="7">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="#FFD3D3D3" Offset="0" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Grid Margin="7">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock FontSize="30" Text="{Binding Date}"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Month}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Year}"></TextBlock>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Heading}"></TextBlock>
<TextBlock Grid.Row="1" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Description}"></TextBlock>
</Grid>
<TextBlock Grid.Column="2" FontSize="15" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Time}"></TextBlock>
</Grid>
<Border Grid.Row="1" BorderBrush="#FFD3D3D3" BorderThickness="1" Margin="10,0,0,0"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
C#代码:
public List<UpcommingEvent> GetUpcomingEvent()
{
List<UpcommingEvent> data = new List<UpcommingEvent>();
data.Add(new UpcommingEvent() { Date = "2", Time = "00:45AM", Description = "fds My first dynamic message 1", Heading = "Fist Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "3", Time = "01:45AM", Description = "rewd My first dynamic message 2", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "4", Time = "01:45AM", Description = "fdf My first dynamic message 3", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "5", Time = "01:00PM", Description = "vfc My first dynamic message 4", Heading = "Second Message", Month = "Dec", Year = "2015" });
data.Add(new UpcommingEvent() { Date = "6", Time = "12:45PM", Description = "kjh My first dynamic message 5", Heading = "Second Message", Month = "Dec", Year = "2015" });
return data;
}
public DashboardPage()
{
this.InitializeComponent();
UpcomingEvent.Source = GetUpcomingEvent();
}
是什么导致动态 UI 与静态不同,我应该如何解决它?
谢谢
首先,您输入的是 GridView 而不是 ListView。 GridView 中不存在 ItemTemplate。
我对你的模板做了一些修改:
<ListView x:Name="LstView1">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid Name="DataLabels" Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="75" />
<ColumnDefinition Width="9*" />
<ColumnDefinition Width="4*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="7">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="Red" Offset="0" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Grid Margin="7" Background="Purple">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock FontSize="30" HorizontalAlignment="Center" Text="{Binding Date}"></TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Center" Text="{Binding Month}"></TextBlock>
<TextBlock Grid.Row="2" HorizontalAlignment="Center" Text="{Binding Year}"></TextBlock>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Heading}"></TextBlock>
<TextBlock Grid.Row="1" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding Path=Description}"></TextBlock>
</Grid>
<TextBlock Background="Yellow" Grid.Column="2" FontSize="15" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Time}"></TextBlock>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
检查模板并判断它是否符合您的需要。