2010-04-15 22 views
0

設置:項目源改變後Mainaining無線選擇

我有一個組合框,它的ItemSource綁定到自定義類的一個ObservableCollection < T>,一個屬性是列表< myenum>。

我有一個itemscontrol的數據綁定到組合框的選定項目列表< myenum>屬性。

itemscontrol datatemplate創建一個單選按鈕列表,每個單選按鈕表示列表中的各個枚舉值。

願望:

當我更改組合框中的ItemsControl源正在更新的價值。我想要發生的情況是,如果新項目控制源中的單選按鈕與之前列表中選定的單選按鈕相同(更新之前),則需要對其進行檢查。

當前思想:

ASIGN一個經過事件的單選按鈕,其保持在能夠抵抗待比較的窗口類myenum屬性。使radiobox的IsChecked屬性綁定到轉換器並與myenum屬性進行比較。爲了達到這個目的,我從IValueConverter中創建了窗口類,這樣轉換器函數就可以訪問myenum屬性。

問題:

我不知道如何讓綁定器isChecked使用的窗口作爲轉換器。我在綁定的轉換器部分使用相對源試過,但還是不行 IsChecked="{Binding Converter={RelativeSource={RelativeSource Self}}}"

首選答案:在糾正綁定語法,如果有可能這樣

援助。

想法達到我想要的更合適的方式。

回答

0

我也不知道如何使用該窗口作爲xaml中的值轉換器。相反,創建一個具有枚舉類型的公共屬性的獨立值轉換器類。接下來,在窗口的構造函數中,獲取對值轉換器實例的引用,並將其存儲在私有成員中。

XAML:

<local:MyValueConverter x:Key="ConvertSomething" /> 

後面的代碼:

private MyValueConverter _myValueConverter; 

public Window1() 
{ 
    InitializeComponent(); 

    _myValueConverter = FindResource("ConvertSomething") as MyValueConverter; 
} 

private void RadioButton_Checked(object sender, RoutedEventArgs e) 
{ 
    // You can access _myValueConverter here and set its public enum property.  
} 
+0

這是我花了最終的路線。不得不改變綁定到Mode = OneWay。但現在一切正常。 – Psytronic 2010-04-16 08:15:33