2011-07-04 45 views
5

我正在研究一個顯示調查答案的小項目。我遇到顯示選項問題答案的問題。ItemsControl中的多元RadioButton組

正如您在下面的xaml解壓縮中看到的,我試圖按答案ID對單選按鈕進行分組,因此每個答案對象只選擇一個選項。

但是,下面的代碼將整個調查中的所有單選按鈕視爲一個大的單選按鈕組的一部分,並且只允許爲所有問題選擇一個選項。

比方說,我有2個答案顯示(- =沒有選擇,+ =選擇):

我希望這樣的事情:

正確答案爲:

-Option1 - Option2 + Option3

ANSWER2 :

-Option1 + Option2 - Option3

但是下面的xaml代碼只允許我從兩個問題中選擇一個值,而不是強迫每個問題相互排斥。

<ItemsControl ItemsSource="{Binding Options}"> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <RadioButton GroupName="{Binding AnswerId}" Content="{Binding Option}" IsChecked="{Binding IsSelected, Mode=OneWay}"/> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 

回答

1

我使用XAML中創建一個測試,下面的代碼,它工作正常(允許從每組3個回答一個選擇):

enter image description here

您是否在綁定之前創建所有答案選項?它看起來像GroupName不是依賴項屬性。

using System.Collections.Generic; 
namespace PersonTests 
{ 
    public class QuestionTestViewModel 
    { 
     public IEnumerable<AnswerOption> Options { get; set; } 

     public QuestionTestViewModel() 
     { 
      this.Options = new List<AnswerOption>() 
          { 
           new AnswerOption(){AnswerId = 1, Option = "One A", IsSelected = false}, 
           new AnswerOption(){AnswerId = 1, Option = "One B", IsSelected = false}, 
           new AnswerOption(){AnswerId = 1, Option = "One C", IsSelected = false}, 
           new AnswerOption(){AnswerId = 2, Option = "Two A", IsSelected = false}, 
           new AnswerOption(){AnswerId = 2, Option = "Two B", IsSelected = false}, 
           new AnswerOption(){AnswerId = 2, Option = "Two C", IsSelected = false} 
          }; 
     } 
    } 

    public class AnswerOption 
    { 
     public int AnswerId { get; set; } 
     public string Option { get; set; } 
     public bool IsSelected { get; set; } 
    } 
} 
+0

感謝HiTech你的代碼指出我做錯了什麼!..我使用ItemsControl作爲網格行的itemTemplate。每個網格行都綁定到具有選項集合的答案對象。 AnswerId屬性是Answer對象的一部分,而不是AnswerOption對象的一部分。我的壞,但是你的代碼幫助我看到了我的錯誤。順便說一句,我會標記你的答案是正確的答案,但我沒有足夠的觀點這樣做:)。謝謝。 – aamran

0

你可能會發布你綁定的對象/類定義,它有點不清楚你的數據結構是如何工作的。我已經建立了一個調查問卷是Silverlight的,也有類似的挑戰......

+0

嗨,請參考高科技魔術貼它是非常接近我有什麼。 :) – aamran