如果在Combobox Itemsource绑定中未给出元素名称,则它显示空组合框

时间:2015-10-29 13:50:49

标签: silverlight

这是代码段:

 setter.Value = (DataTemplate)System.Windows.Markup.XamlReader.Load(
           @"<DataTemplate xmlns=""http://schemas.microsoft.com/client/2007"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""> 
                <StackPanel HorizontalAlignment='Left' Height='Auto'  VerticalAlignment='Top' Width='Auto'> 
                <Grid Width='Auto'> <Grid.ColumnDefinitions> <ColumnDefinition Width='80*'/>
                <ColumnDefinition Width='20*'/></Grid.ColumnDefinitions>
                <Grid.Resources><Style TargetType='ComboBoxItem' x:Key='comboboxStyle' > 
                <Setter Property='FlowDirection' Value='LeftToRight'/>
                <Setter Property='Width' Value='" + ColumnWidthList[i] + "' /></Style></Grid.Resources>
            <TextBlock Grid.Column='0'  Text='" + columnName + "' HorizontalAlignment='Left'/>
           <ComboBox MinWidth='16' Grid.Column='1' FlowDirection='RightToLeft' ItemContainerStyle='{StaticResource comboboxStyle}' Name='cmbColors' ItemsSource='{Binding NewLst[" + i + "]}' SelectedItem='{Binding SelectedIt, Mode=TwoWay,ElementName=s1}' SelectedValue='{Binding SelectedValue, Mode=TwoWay,ElementName=s1}' SelectedValuePath='Item1' DisplayMemberPath='Item1'> </ComboBox></Grid></StackPanel></DataTemplate>");
  headerStyle.Setters.Add(setter);
  datagrid1.Columns[i].HeaderStyle = headerStyle;

如果我给出,ElementName = s1,那么它可以正常工作

ItemsSource='{Binding NewLst[" + i + "],ElementName=s1}

有人可以建议我们如何在没有元素名称的情况下使用它吗? 元素名称是用户控件x的名称:name =&#34; s1&#34;。 由于我在使用Generic.xaml进行模板控制时使用此代码,因此没有用户控件。所以我想在没有元素名称的情况下使用它。我动态创建组合框以在DataGrid的列标题中显示它。

0 个答案:

没有答案