我的問題是以下答案的擴展。它聲明一個單選按鈕的GroupName的範圍非常廣泛,通常最好讓GroupName由容器自動分配。ListView的DataTemplate中的單選按鈕組
https://stackoverflow.com/a/6062697/907920
如果我使用一個靜態的組名,那麼所有的單選按鈕的共享羣組。 (正如答案中所示的鏈接。)
但是,如果我不使用GroupName,那麼每個單獨的RadioButton被視爲它自己在一個組中。爲了自動分配GroupName,我只能假定它使用DataTemplate或CellTemplate作爲「父」。
我有一個StackPanel中的問題列表。每個問題都顯示在UserControl中。每個問題都包含答案的ListView。每個答案都有一個布爾屬性,用於指示已選擇答案,該答案綁定到DataTemplate中的RadioButton。
我剝了下來XAML如下
<ListView ItemsSource="{Binding AnswerList}" >
<ListView.View>
<GridView>
<!-- Other columns here -->
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding Path=AnswerChecked}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我不認爲我有什麼別的選擇,只能使用ListView,因爲我需要能夠打開其他列和關閉,以及作爲需要顯示兩個或更多答案。
有沒有辦法讓我告訴單選按鈕它是UserControl的一部分而不是DataTemplate的目的是爲了它的GroupName?
我曾考慮給每個UserControl分配一個GUID並將RadioButton的GroupName綁定到GUID的字符串,但這看起來過分笨拙。
編輯:對於Visual參考,UI流動約這樣的,我在括號註釋:
- 問題控制(綁定到問題的集合問題的StackPanel中)(包含一ListView綁定到Answers'|'分隔列的集合)
- [] |答案1(未選中的回答對象,文本爲「答案1」)
- [] |回答2
- [*] |答案3(經過應答對象隨文字 「答3」)
- 誰是第16任總統
- [] |卡爾·馬克思
- [*] |亞伯拉罕林肯
- [] |尼克松
- 什麼是一個氫摩爾的重量
- [] | 10g
- [] | 。1g
- [] | 1克
「我考慮爲每個UserControl分配一個GUID並將RadioButtons的GroupName綁定到GUID的字符串,但這看起來過於笨拙。」 - 也沒有工作。我結束了與以前相同的問題。每個RadioButton都被視爲獨立於其他人。 –
好像我在用這個吠叫錯誤的樹。單選按鈕(至少4.5)將自動按其容器分組。 –