2012-03-02 40 views
0

我正在嘗試從一個ComboBox數據綁定信息。我嘗試下面的代碼。如何獲取ComboBox.SelectionBoxItemProperty的數據綁定信息?

XAML:

<ComboBox Name="ddd" Margin="61,55,273,223" ItemsSource="{Binding myData, ElementName=window}" DisplayMemberPath="name" /> 
<TextBox Name="te" Height="30" TextChanged="TextBox_TextChanged" Margin="61,140,273,140" Text="{Binding SelectedItem.roll, ElementName=ddd}"/> 
<Button Content="Button" Height="50" HorizontalAlignment="Left" Margin="268,120,0,0" Name="button1" VerticalAlignment="Top" Width="151" Click="button1_Click" /> 

C#代碼:

public partial class MainWindow : Window 
{ 
    public List<testData> myData { get; set; } 
    public MainWindow() 
    { 
     myData = new List<testData>(); 
     InitializeComponent(); 
     myData.Add(new testData { name = "a", roll = "1" }); 
     myData.Add(new testData { name = "b", roll = "2" }); 
     myData.Add(new testData { name = "c", roll = "3" }); 
     this.DataContext = this; 
    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     var Be = this.ddd.GetBindingExpression(ComboBox.SelectionBoxItemProperty); 
     var data = (testData)Be.DataItem; 
     MessageBox.Show(data.roll); 
    } 
} 

public class testData 
{ 
    public string name { get; set; } 
    public string roll { get; set; } 
} 

但它拋出 「對象引用不設置到對象的實例」 這行例外

var data = (testData)Be.DataItem; 

其中i做錯了 ?

thank`s尋求幫助。

回答

2

,因爲你得到了SelectionBoxItem財產的結合,這我沒有看到任何地方束縛你得到這個錯誤。所以Benull

只需使用ddd.SelectedItem獲得所選擇的項目,並投它作爲一個testData對象。