Study/C#

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

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

 

이번에는 가변 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);

 

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

 

 

반응형