مختفي رأس عمود Silverlight على قالب نمط الرأس
-
26-09-2019 - |
سؤال
لدي Silverlight DataGrid
مع عمودين. يجب عرض رؤوس رأس العمودين هذين العمودين مع مربع نص وعنوان رأس العمود أو اسمه بحيث يمكن استخدام مربع النص للتصفية لاحقًا.
لذلك ، لقد استخدمت الكود التالي لعرض مربع النص باستخدام نمط:
<Style x:Name="mytemplate"
x:Key="mytemplate"
xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate x:Name="ColHeaderTemplategrid">
<StackPanel>
<TextBox x:Name="txtfilterBox" KeyDown="txtfilterBox_KeyDown" Width="40"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
وقد طبقت النمط على رؤوس الأعمدة على النحو التالي:
((DataGridTextColumn)column[0]).HeaderStyle = mytemplate;
((DataGridTextColumn)column[1]).HeaderStyle = mytemplate;
الشيء ، الآن مربع النص مرئيًا ولكن عنوان رأس العمود أو الاسم يختفي؟
كيف أعرض رأس العمود الخاص بي مع مربع النص؟
المحلول
كما قلت ، قمت فقط بإدراج نص textlock في stackpanel من القالب وحل المشكلة
الرمز أدناه
<Style x:Name="mytemplate" x:Key="mytemplate" xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate x:Name="ColHeaderTemplategrid">
<StackPanel>
<TextBlock Text="{Binding}" ></TextBlock>
<TextBox x:Name="txtfilterBox" KeyDown="txtfilterBox_KeyDown" Width="40"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
لا تنتمي إلى StackOverflow