2012-10-19 63 views
0

我有一組在XAML中創建的RadioButton,它們通過綁定到代碼隱藏中的對象集合而生成。綁定一個RadioButton組及其相關數據

我正在尋找一個乾淨的方式,已被選中的RadioButton和它所涉及的對象(在本例中是PaletteSwatch對象)之間的映射。

PaletteSwatch.color字段用於單獨的RadioButton樣式定義(此處未列出)。

任何幫助將非常感激。

CS模型類

public class PaletteSwatch 
{ 

    private string colorField; 

    public string color 
    { 
     return colorField; 
    } 
    ... 
} 

CS窗口類

... 
private ObservableCollection<PaletteSwatch> mDefaultPalette = new ObservableCollection<PaletteSwatch>(); 

public ObservableCollection<PaletteSwatch> PaletteDefault 
{ 
    get 
    { 
     return mDefaultPalette; 
    } 
} 

XAML

<ItemsControl ItemsSource="{Binding ElementName=mainWindow, Path=PaletteDefault}" ItemTemplate="{StaticResource swatchTemplate}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate > 
       <UniformGrid Columns="7"/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
</ItemsControl> 

... 

<DataTemplate x:Key="swatchTemplate"> 
    <RadioButton GroupName="filterColorThemes" Click="RadioButton_Click"/> 
</DataTemplate> 

回答

0

好吧,我發現ANSW呃對於那些可能想知道...

基本上你需要添加的單選按鈕標記字段:

<RadioButton GroupName="filterColorThemes" Click="RadioButton_Click" Tag="{Binding}"/> 

的{結合}標籤是指一個元素在列表中,在我的情況下, PaletteSwatch對象。

然後在CS文件:

private void RadioButton_Click(object sender, RoutedEventArgs e) 
    { 
     RadioButton rb = sender as RadioButton; 
     PaletteSwatch ps = rb.Tag; 

     ... 

    } 
相關問題