我需要根據父容器接收的數據上下文中的字段值來綁定組合框的選定項。將組合框SelectedItem綁定到DataContext值
容器是當它被點擊
private void Button_Click(object sender , RoutedEventArgs e)
{
GridEmployee.DataContext = ((Button)sender).DataContext;
}
接收它的DataContext從項目在itemcontrol網格*按鈕得到它的ItemSource從員工界的列表中itemControl
電網其中包含一些控件其中一個組合框,我通過枚舉初始化
public Enum Gender
{
Male,Female
};
foreach(string _gender in Enum.GetNames(Gender))
{
GenderComboBox.Items.Add(_gender);
}
Employee類具有匹配的屬性性別
private string gender;
public string Gender
{
get{return gender;}
set
{
gender = value ;
if(PropertyChanged != null)
PropertyChanged(this,new PropertyChangedEventArgs("Gender"));
}
}
的GenderComboBox.SelectedItem爲界,性別屬性的值有界對象員工
<ComboBox x:Name="GenderComboBox" SelectedItem="{Binding Gender , Mode=TwoWay}" />
這裏當然,該項目沒有得到選擇的問題..
我可能是它的原因,在組合框中的項目是字符串,我試圖根據自定義轉換器綁定它們,它只取得枚舉值並返回它的.ToString() 。
但我無法檢查此問題,因爲在表單的承包商中拋出了An XamlParseException。
我沒有完全理解它爲什麼會發生,可能是因爲它沒有一個值來轉換,當我形成負載。
因此得出結論我如何將屬性從我的員工類 綁定到具有屬性值的字符串表示的組合框?
我剛看到一個例子其中有人使用 GenderComboBox.ItemSource = Enum.GetValues(typeof(Gender)); 那麼爲什麼要使用item來源? –
「這裏的問題當然是物品沒有被選中」。當您在代碼中設置屬性時,您是否希望其中一個項目顯示爲在UI上選定的項目,或者您是否希望在選擇UI中的某個項目時設置了代碼屬性?我們要去哪裏... –
另外我建議在這裏使用單選按鈕而不是組合框。你可以直接使用這種方法與枚舉:http://stackoverflow.com/questions/397556/wpf-how-to-bind-radiobuttons-to-an-enum –