ListView가있는 프로젝트가 있으며 사용자가 New 버튼을 클릭하면 ListView의 아래쪽에 새 Object가 추가됩니다. Content Style 클래스를 사용해 보았지만 작동하지 않았습니다. 선택한 항목으로 스크롤 할 항목이 필요합니다. 다음은 내 코드입니다 :MVVM Light의 목록 뷰에 새 항목을 추가하는 방법
보기 : 새 버튼에 대한
<ListView Margin="103,0,0,10" ScrollViewer.CanContentScroll="True" Height="87" SelectedItem="{Binding SelectedSession, Mode=TwoWay}" ItemsSource="{Binding SessionCollection}">
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Session Name" Width="180" DisplayMemberBinding="{Binding SessionName, Mode=TwoWay}" />
<GridViewColumn Header="Operator Name" Width="180" DisplayMemberBinding="{Binding OperatorName, Mode=TwoWay}"/>
<GridViewColumn Header="Session Date" Width="180" DisplayMemberBinding="{Binding SessionDate, Mode=TwoWay}"/>
</GridView>
</ListView.View>
</ListView>
보기 모델 코드 : 행동
public void NewSession()
{
Session newSession = new Session();
SessionCollection.Add(newSession);
SelectedSession = newSession;
SessionDate = DateTime.Now;
StartTime = DateTime.Now;
EndTime = DateTime.Now;
ProjectManager.Instance.CurrentSession = null;
}
public ObservableCollection<Session> SessionCollection
{
get
{
if (currentDatabaseProj.Sessions == null)
{
return currentDatabaseProj.Sessions;
}
else
{
return currentDatabaseProj.Sessions;
}
}
private set
{
currentDatabaseProj.Sessions = value;
IsNewProjClicked = true;
this.RaisePropertyChanged("SessionCollection");
}
}
맞으면 "새 버튼"을 클릭 할 때 선택한 항목을 새 요소로 설정하고 있습니까? – Herdo
예. 맞아. – yams
'SelectedItem'을 설정해도 자동으로 포커스가 지정되지 않습니다. 자세한 내용은 설정 방법을 보려면 [this] (http://stackoverflow.com/a/11747701/2132796) 항목을 참조하십시오. – Herdo