Динамически создавая привязку и устанавливая ее на строковый объект, который был создан silverlight

Я хотел создать динамическое связывание и установить это связывание для строкового объекта, который был создан на лету, и связать его со свойством displaymemberpath свойства поля со списком.

Как мне это сделать?

Вот мой код, но, похоже, он не работает. Для чего я буду устанавливать свойство пути привязки (т.е. причина, по которой я делаю это таким образом, заключается в том, что у меня есть количество комбинированных окон, которые используют этот единственный метод):

    private void ComboValue_DropDownClosed(object sender, EventArgs e)
    {
        ComboBox combo = (ComboBox)sender;
        int selectedItemCount = 0;
        foreach (MyItem item in combo.Items)
        {
            if (item.IsSelected == true)
                selectedItemCount = selectedItemCount + 1;
        }
        string SelectedComboCount = selectedItemCount.ToString();
        Binding b = new Binding();
        b.Source = SelectedComboCount ;
        combo.SetBinding(ComboBox.DisplayMemberPathProperty, b);
    } 

1 ответ

Вы ищете свойство Text и можете выполнить связывание в xaml:

<ComboBox Name="cb">
      ItemsSource="{StaticResource myCities}" 
      Text="{Binding ElementName=cb, Path=Items.Count}">
</ComboBox>

Изменить: Так как вы создаете комбо динамически, вот как сделать связывание:

Binding binding = new Binding();
binding.Source = combo;
binding.Path = new PropertyPath("Items.Count");
combo.SetBinding(ComboBox.TextProperty, binding);

Редактировать 2: Мой плохой, это для WPF. Свойство Text недоступно в Silverlight.

Другие вопросы по тегам