저는 현재 "토너먼트 생성기"를 작업 중이며 한 단계에서 트레이너를 팀에 연결해야합니다. 따라서 통합 콤보 상자와 함께 WPF ListView 를 사용했습니다 . 선택 모드는 "다중"입니다 . 그림은 다음과 같습니다.
평판이 없기 때문에 사진이 없습니다.
다음과 같이 보입니다.
두 개의 열이 있습니다. 첫 번째 열에는 다른 트레이너 이름이 있습니다. 두 번째 열에는 각 줄에 서로 다른 팀이있는 콤보 상자가 있습니다. 각 트레이너에 대해 콤보 박스에서 팀을 선택할 수 있습니다.
다음은 코드입니다.
<ListView x:Name="TrainerListView" ItemsSource="{Binding Trainer}" HorizontalAlignment="Left" VerticalAlignment="Top" SelectionMode="Multiple">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Trainer" Width="150"/>
<GridViewColumn Header="Team" Width="150">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}},Path=DataContext.Teams}" Width="120" DisplayMemberPath="Name"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
코드에서 볼 수 있듯이 ListView에는 Trainer 속성이 ItemsSource로 있고 ComboBoxes에는 Teams 속성이 있습니다.
버튼을 클릭 한 후 선택한 모든 값을 가져오고 싶습니다. 여기 : "David with FC Liverpool", "Bernd with Borussia Dortmund"및 "Tim with Bayern Munic". 다음을 시도했습니다.
private void StartTournamentButton_Click(object sender, RoutedEventArgs e)
{
var selectedItems = TrainerListView.SelectedItems;
}
그러나 selectedItems 변수는 선택된 트레이너 개체 "David, Bernd 및 Tim"만 보유합니다.
여전히 Trainer와 Team의 연결은 말할 것도없고 ListView에서 "팀 값"을 검색하는 방법을 찾을 수 없었습니다. 선택한 행의 값을 어떻게 얻습니까? 관련 값으로 가장 좋습니다.
친애하는,
데이비드
에서 Trainer
클래스 다른 속성 발언권을 가질 필요가 AssignedTeam
떨어져에서 Name
.
public string AssignedTeam { get; set; }
그리고 SelectedItem
해당 속성으로 콤보 상자를 바인딩 합니다.
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}},Path=DataContext.Teams}"
SelectedItem="{Binding AssignedTeam}"
Width="120"/>
이제 SelectedItems will give you list of objects of Trainer class
어디에서 팀 할당 속성에 액세스 할 수 있습니다.
var selectedItems = TrainerListView.SelectedItems;
string assignedTeam = ((Trainer)selectedItems[0]).AssignedTeam;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다