динамически создавая привязку и устанавливая ее на строковый объект, который был создан silverlight - PullRequest
1 голос
/ 07 сентября 2011

Я хотел динамически создать привязку и установить эту привязку для строкового объекта, созданного на лету, и привязать его к свойству 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 Ответ

0 голосов
/ 07 сентября 2011

Вы ищете свойство 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.

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