我想以編程方式更改ListView的內容或基於xaml的內容。更改wpf中的ListView內容
<Page.Resources>
<CollectionViewSource
x:Name="queuesViewSource" Source="{Binding TicketQueues}" d:Source="{Binding Groups[0].TicketQueues, Source={d:DesignData Source=/DataModel/SampleData.json, Type=data:SampleDataSource}}"/>
<CollectionViewSource
x:Name="ticketsViewSource"
Source="{Binding Tickets}"
d:Source="{Binding Tickets, Source={d:DesignData Source=/DataModel/TicketsList.json, Type=data:TicketsListDataSource}}"/>
<DataTemplate x:Key="queuesViewItemTemplate">
<Grid Margin="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="60" Height="60">
<Image Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
</Border>
<StackPanel Grid.Column="1" Margin="10,0,0,0">
<TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" MaxHeight="40"/>
<TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap"/>
</StackPanel>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ticketsListViewTemplate">
<Grid Margin="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Margin="10,0,0,0">
<TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" MaxHeight="40"/>
<TextBlock Text="{Binding Due}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap"/>
</StackPanel>
</Grid>
</DataTemplate>
<local:ServiceDeskMasterViewDataTemplateSelector
QueuesTemplate="{StaticResource queuesViewItemTemplate}"
TicketListTemplate="{StaticResource ticketsListViewTemplate}"
x:Name="masterViewTemplateSelector" />
</Page.Resources>
...
<ListView Grid.Row="1" x:Name="masterList" ItemTemplateSelector="{StaticResource masterViewTemplateSelector}" />
而在後臺代碼:
構造頁:
{
// Initial Data setting...
Binding items = new Binding();
items.Source = this.Resources["queuesViewSource"];
this.masterList.SetBinding(ItemsControl.ItemsSourceProperty, items);
this.InvalidateVisualState();
}
最後,列表視圖項選擇爲「希望」加載不同的內容的列表視圖,但它的不工作。請幫助
if (eArgs.AddedItems.Count == 1 && eArgs.RemovedItems.Count == 1)
{
Binding items = new Binding();
items.Source = this.Resources["ticketsViewSource"];
this.masterList.SetBinding(ItemsControl.ItemsSourceProperty, items);
//this.masterList.SetBinding(ItemsControl.ItemTemplateProperty,)
this.masterList.ItemTemplate = masterViewTemplateSelector.TicketListTemplate;
//this.masterList.ApplyTemplate();
this.InvalidateVisualState();
}
@Blam:我在哪裏使用List? –
您正確刪除我的評論 – Paparazzi