【问题标题】:creating a binding dynamically and setting it to a string object that was created silverlight动态创建绑定并将其设置为创建 silverlight 的字符串对象
【发布时间】:2011-09-07 10:52:04
【问题描述】:

我想动态创建绑定并将此绑定设置为动态创建的字符串对象,并将其绑定到组合框的 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 因为我讨厌看到新手在没有机会的情况下被否决。通常,即使是那些英语水平很差的人(由于英语不是他们的母语)写的问题也可以理解。但是,我发现这个问题中的文字非常困难。您是否可以考虑添加一些句号来将大的单个句子分成更小的句子。
  • @AnthonyWJones:已经尽我所能清理它了......可怜的新手:)

标签: c# silverlight silverlight-4.0


【解决方案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 的。文本属性在 Silverlight 中不可用。

【讨论】:

  • 嗨,我不能在 xaml 上进行绑定,组合是动态生成的,用户单击并创建多选组合框,这一切都是在后面的代码上动态完成的。
  • 好的,我添加了一个示例来展示如何动态创建绑定。希望对您有所帮助!
  • 嗨 Alfonso 感谢您的回复,设置属性路径时,我猜 Items 是类名?你能描述你给的路径吗,silverlight中也没有comboBox.TextProperty
  • 啊,抱歉,Text 属性仅在 WPF 中可用,在 Silverlight 中不可用。这个解决方案行不通,我的错:(
猜你喜欢
  • 1970-01-01
  • 2020-04-12
  • 2013-03-17
  • 1970-01-01
  • 2011-08-06
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多