본문 바로가기

[C#] ScrollViewer 안에 StackPanel을 사용해서 스크롤되는 가변 UI리스트 만들기.

I'm 영서 2024. 5. 3.
반응형

 

이번에는 가변 UI를 만들어보자. 지난번 캘린더를 만들때는 Grid를 사용했는데, 이번에는 DevExpress의 LayoutControl을 사용해서 만들어보려고 한다. 

 

물론 Grid를 이용하는경우 Grid.ColSpan등을 이용해 높이, 너비를 조절한후 사용하면 동일한 결과를 얻을 수 있다.

 

먼저 가변적으로 추가할 컨텐츠를 만든다.

 

몇개의 입력값과, -를통한 자가제거를 구현할 예정이다.

 

        public event EventHandler RemoveRequested;

	private void RemoveButton_Click(object sender, RoutedEventArgs e)
   {
       // RemoveRequested 이벤트를 발생시키며, 이 UserControl을 제거하도록 요청
       RemoveRequested?.Invoke(this, EventArgs.Empty);
   }

 

이제 이게 부모레이아웃에서 ScrollViewer에 들어가야한다. 

 

<ScrollViewer VerticalScrollBarVisibility="Auto">
    <StackPanel x:Name="ItemsContainer"/>
</ScrollViewer>

 

위와같이 ScrollViwer와 StackPanel을 선언해준뒤 코드 비하인드에서

 
 var newItem = new EMBRACE_HFESelector(ItemsContainer.Children.Count + 1);
 newItem.RemoveRequested += (s, args) =>
 {
     // UserControl 제거
     ItemsContainer.Children.Remove(s as MyListTest);
 };

 ItemsContainer.Children.Add(newItem);

 

추가를 해주면 된다. 간단히 구현이 된다.

 

 

반응형

댓글