这是代码段:
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的列标题中显示它。