Динамически создавая привязку и устанавливая ее на строковый объект, который был создан 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.