반응형
    
    
    
  StackPanel에 컬렉션 바인딩
개체 컬렉션을 가져와 StackPanel에 바인딩하고 싶으므로 기본적으로 컬렉션에 4 개의 요소가있는 경우 4 개의 버튼을 생성해야하는 스택 패널 내부에 있습니다.
나는 이것을 시도했지만 어쨌든 올바른 접근 방식이라고 생각하지 않습니다. 나는 과거에 이러한 유형의 아이디어를 수행하기 위해 DataTemplated를 사용했습니다. 내가 틀렸다면 저를 수정하십시오.
여기 내 가짜 모델이 있습니다.
public class MockModel
{
   public ObservableCollection<MockNode> Nodes;
   public MockModel()
   {
      Nodes = new ObservableCollection<MockNode>();
   }
}
public class MockNode
{
   public MockNode()
   {
   }
   private string itemname;
   public string ItemName
   {
      get { return this.itemname; }
      set { this.itemname = value; }
   }
}
코드에서 다음과 같이 DataContext를 설정했습니다.
// Init Model
MockModel myModel = new MockModel();
for (int i = 0; i < 4; i++)
{
   MockNode mn = new MockNode();
   mn.ItemName = String.Format("Node {0}", i);
   myModel.Nodes.Add(mn);
}
// Set DataContext for StackPanel
Stack.DataContext = myModel.Nodes;
그리고 xaml
<StackPanel x:Name="tStack">
   <ItemsControl ItemsSource="{Binding Nodes}">
      <ItemsControl.Template>
         <ControlTemplate>
            <Button Content="{Binding ItemName}"/>
         </ControlTemplate>
      </ItemsControl.Template>
   </ItemsControl>
</StackPanel>
그것은 묶여 있지만 4 개의 버튼 대신 하나의 버튼 만 얻습니다 ....
아이디어?
좋아, 알아 냈어 ...를 사용하여 ItemsControl문제를 해결했습니다 ...
<ItemsControl x:Name="tStack" Grid.Column="0">
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <StackPanel Orientation="Horizontal"/>
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <Button Content="{Binding ItemName}"/>
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>
참고 URL : https://stackoverflow.com/questions/3356719/bind-collection-to-stackpanel
반응형
    
    
    
  'code' 카테고리의 다른 글
| pgsql 포트 변경 (0) | 2020.11.20 | 
|---|---|
| 이미지 처리 : 폐색이란 무엇입니까? (0) | 2020.11.20 | 
| 구조체 초기화로 구성된 벡터 (0) | 2020.11.20 | 
| SQL 날짜 선택 (0) | 2020.11.20 | 
| fileExistsAtPath : 존재하는 파일에 대해 NO 반환 (0) | 2020.11.20 |