こんにちは、ソリューションで mvvm を使用して WPF を使用していますが、問題があります。私はviewModelで使用しているこのオブジェクトを持っています:
public class SuperCharacter : INotifyPropertyChanged
{
public List<Character> Characters { get; set; }
public string Name { get; set; }
private Character charactersExp;
private const string currentCharacterExpandedString = "CurrentCharacterExp";
public Character CurrentCharacterExpanded
{
get { return this.charactersExp; }
set
{
this.charactersExp = value;
this.OnPropertyChanged(currentCharacterExpandedString);
}
}
public string CalcSize { get; set; }
public void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
そして、私はこのビューを持っています:
Window.Resources>
<DataTemplate x:Key="TrackPointUserSavedSearchDtoTemplate" DataType="{x:Type src:Character}">
<StackPanel >
<TextBlock x:Name="caption" Margin="1"
Text="{Binding First}" MaxWidth="{Binding ElementName=image, Path=ActualWidth}" MaxHeight="40" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="DynamicUserSaveSearchesTemplate" DataType="{x:Type src:Character}">
<ContentPresenter x:Name="content" ContentTemplate="{StaticResource TrackPointUserSavedSearchDtoTemplate }"/>
</DataTemplate>
<DataTemplate x:Key="IconoTrackPointUSTemplate" DataType="{x:Type src:SuperCharacter}">
<ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Expander Height="180" Margin="12,0,0,-127" >
<Expander.Header>
<Binding Path="Name"></Binding>
</Expander.Header>
<ListView Name="ProblemListView" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Characters}" SelectedItem="{Binding CurrentCharacterExpanded}" ItemTemplate="{StaticResource DynamicUserSaveSearchesTemplate}" Panel.ZIndex="20">
</ListView>
</Expander>
</ScrollViewer>
</DataTemplate>
<DataTemplate x:Key="DynamicTrackPointUSTemplate" DataType="{x:Type src:SuperCharacter}" >
<ContentPresenter x:Name="content" ContentTemplate="{StaticResource IconoTrackPointUSTemplate }"/>
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="42"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Label Content="Entitty's TrackPoint list:" Margin="12,5,76,9" Name="labelName" />
<ListView Grid.Row="1" ItemsSource="{Binding SuperCharacters}" SelectedItem="{Binding CurrentSuperCharacterExpanded}" ItemTemplate="{StaticResource DynamicTrackPointUSTemplate}">
</ListView>
<Grid/>
問題は、Expander を展開すると、Listview 呼び出し ProblemListView の要素が次の Expander の下にあることです。
このエキスパンダー リストを正しく表示する方法を教えてください。エキスパンダーを展開すると、problemListView が正しく表示されます。
リストは動的であり、さまざまな数の要素を持つことができることを覚えておいてください