Как получить информацию о привязке данных ComboBox.SelectionBoxItemProperty? - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь получить информацию о привязке данных из ComboBox.Я пытаюсь это следующий код.

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;

где я делаю неправильно?

спасибо за помощь.

1 Ответ

2 голосов
/ 02 марта 2012

Вы получаете эту ошибку, потому что получаете привязку для свойства SelectionBoxItem, которое я нигде не вижу связанным.Так что Be равно null

Просто используйте ddd.SelectedItem, чтобы получить выбранный предмет, и приведите его как testData объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...