C# 公开数据网格&x27;s单元格模板作为Silverlight 4中的自定义用户控件属性
我正在Silverlight4中构建自定义用户控件。该控件背后的思想是使用寻呼机将数据网格从用户页面移动到控件。当前数据网格看起来像:C# 公开数据网格&x27;s单元格模板作为Silverlight 4中的自定义用户控件属性,c#,wpf,silverlight,xaml,C#,Wpf,Silverlight,Xaml,我正在Silverlight4中构建自定义用户控件。该控件背后的思想是使用寻呼机将数据网格从用户页面移动到控件。当前数据网格看起来像: <sdk:DataGrid x:Name="GridCustomers" Height="300" VerticalAlignment="Top" ItemsSource="{Binding CustomerModelsPagedCollectionView}" AutoGenerateColumns="False" Scr
<sdk:DataGrid x:Name="GridCustomers" Height="300" VerticalAlignment="Top" ItemsSource="{Binding CustomerModelsPagedCollectionView}" AutoGenerateColumns="False" ScrollViewer.VerticalScrollBarVisibility="Visible" IsReadOnly="True" SelectionChanged="GridCustomers_SelectionChanged">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Numer bilingowy" Binding="{Binding BillingNumber}" />
<sdk:DataGridTextColumn Header="Nazwa klienta" Binding="{Binding CustomerName}"/>
<sdk:DataGridTextColumn Header="Skrócona nazwa" Binding="{Binding ShortCustomerName}"/>
<sdk:DataGridTextColumn Header="Kod pocztowy" Binding="{Binding PostalCode}" />
<sdk:DataGridTextColumn Header="Miasto" Binding="{Binding City}" />
<sdk:DataGridTextColumn Header="Ulica" Binding="{Binding Street}" />
<sdk:DataGridTemplateColumn Header="Urządzenia">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="DeviceComboBox" SelectionChanged="DeviceComboBox_SelectionChanged">
<ComboBox.Items>
<ComboBoxItem x:Name="Switch" Content="Switche"/>
<ComboBoxItem x:Name="Firewall" Content="Firewalle"/>
<ComboBoxItem x:Name="Host" Content="Hosty" />
</ComboBox.Items>
</ComboBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
控件的XAML:
<local:CustomerControl x:Name="temp" >
<local:CustomerControl.ColumnTemplate>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="DeviceComboBox" SelectionChanged="DeviceComboBox_SelectionChanged">
<ComboBox.Items>
<ComboBoxItem x:Name="Switch" Content="Switche"/>
<ComboBoxItem x:Name="Firewall" Content="Firewalle"/>
<ComboBoxItem x:Name="Host" Content="Hosty" />
</ComboBox.Items>
</ComboBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</local:CustomerControl.ColumnTemplate>
</local:CustomerControl>
因为我公开了类型为“DataGridTemplateColumn”的属性,所以模板声明的其余部分不会更改,但这不起作用:(我不确定这个附加属性。你能给我一些提示,如何让它以我所展示的方式工作(或者我应该说“想象”如何工作).这有可能吗?我知道这里有一些主要的缺陷,但只是记录在案,我得到的错误是:
错误3在类型“DataGridTemplateColumn”中找不到可附加属性“CellTemplate”
分析规则PROPERTYELEMENT:中出现错误2意外的PROPERTYELEMENT::=.PROPERTYELEMENT内容?ENDTAG
谢谢你的指点;)
<local:CustomerControl x:Name="temp" >
<local:CustomerControl.ColumnTemplate>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="DeviceComboBox" SelectionChanged="DeviceComboBox_SelectionChanged">
<ComboBox.Items>
<ComboBoxItem x:Name="Switch" Content="Switche"/>
<ComboBoxItem x:Name="Firewall" Content="Firewalle"/>
<ComboBoxItem x:Name="Host" Content="Hosty" />
</ComboBox.Items>
</ComboBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</local:CustomerControl.ColumnTemplate>
</local:CustomerControl>