2011-10-09 105 views
0

我定義了包含單選按鈕的ItemControl。如何取消選中ItemsControl中出現的單選按鈕?

 <ItemsControl x:Name="items" ItemsSource="{Binding Path=myItemList}" > 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <RadioButton Content="{Binding Path=Key}" /> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 

現在,我想取消檢查ItemsControl包含的所有radioButton。 我想寫一些方法,將取消所有這些radioButton檢查。 我該怎麼做?

感謝您的幫助......

回答

-1

我可以看到,單選按鈕綁定到myItemList。 添加另一個屬性(命名爲IsChecked的例子。) 就myItemList方法運行和所有的IsChecked屬性設置爲false。

確保IsChecked性能提高PropetyChangedEvent

例如:

myItemList如果是List(of Bla)Bla具有屬性KeyIsChecked。 一個簡單的for each循環可以做的工作:

For Each blaItem as Bla in myItemList 
    blaItem.IsChecked = false 
Next 

的XAML看起來像這樣:

<ItemsControl x:Name="items" ItemsSource="{Binding Path=myItemList}" > 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <RadioButton Content="{Binding Path=Key}" Checked="{Binding Path=IsChecked}/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
+0

的myItemList是包含對象,該對象的屬性之一是密鑰列表 - 所以我不能讓上myItemList運行是未覈對 – Yanshof

+0

請參閱我的答案編輯 - 我添加了一個小樣本。 – MichaelS

+0

正如我所說的myItemList memberts包含blaItem.Key但這不是bool的對象(!)==>之前...這是字符串,它是有約束力的單選按鈕的單選按鈕的內容(這意味着將出現串在單選按鈕) – Yanshof

0

我解決問題,這是代碼...

foreach(var item in myItemList.Items) 
     { 
      DependencyObject presenter = CategoryBar.ItemContainerGenerator.ContainerFromItem(item); 

      RadioButton t = VisualTreeHelper.GetChild(presenter, 0) as RadioButton; 

      if(t != null && t.IsChecked == true) 
      { 
       t.IsChecked = false; 
      } 
     } 
相關問題