سؤال
أحاول تعيين مشغل لعرض كتلة من النص عندما تكون القيمة التي أحصل عليها للخلية نوعًا معينًا.
لقد نجحت في عرض صورة في نفس الموقف ، لكن في هذه الظروف لا أريد صورة ، لكن بعض النصوص.
علق الخطوط من أجل الاختبار. BRAY لجعلها تعمل. أعمال الرمز المعلقة! نص textblock = xxx داخله ، لا.
هذه محاولاتي (محاولاتي)
<wpfToolkit:DataGridTemplateColumn Header="P" Width="20">
<wpfToolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!-- <DataTemplate.Triggers> -->
<!-- <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1"> -->
<TextBlock Text="XXX" />
<!-- </DataTrigger> -->
<!-- <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2"> -->
<!-- <Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/> -->
<!-- </DataTrigger> -->
<!-- </DataTemplate.Triggers> -->
</DataTemplate>
</wpfToolkit:DataGridTemplateColumn.CellTemplate>
</wpfToolkit:DataGridTemplateColumn>
المحلول
قم بتعيين محتوى datatemplate على textblock وقم بتعيين الرؤية بناءً على المشغل. لست متأكدًا من ماهية Datatrigger الثانية لأنه يشير إلى اسم مستهدف غير موجود في النطاق الحالي ، لذلك لا أعرف كيف يناسب ذلك.
<DataTemplate>
<TextBlock x:Name="block" Text="XXX" Visibility="Collapsed"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1">
<Setter TargetName="block" Property="Visibility" Value="Visible"/>
</DataTrigger>
<!--<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2">
<Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/>
</DataTrigger>-->
</DataTemplate.Triggers>
</DataTemplate>
نصائح أخرى
متألق ! شكرا أكوام :)
هذا ما انتهى بي. إذا كانت الأسبقية = 1 ، عرض! ، إذا كانت precendenceIndicator = 2 ، عرض !!.
<wpfToolkit:DataGridTemplateColumn Header="A" Width="20">
<wpfToolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<TextBlock x:Name="block1" Text="!" Visibility="Collapsed"/>
<TextBlock x:Name="block2" Text="! !" Visibility="Collapsed"/>
</TextBlock>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1">
<Setter TargetName="block1" Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2">
<Setter TargetName="block2" Property="Visibility" Value="Visible"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</wpfToolkit:DataGridTemplateColumn.CellTemplate>
</wpfToolkit:DataGridTemplateColumn>
تحتاج إلى تغيير نوع datatemplate ، استنادًا إلى المشغل الخاص بك ، من صورة إلى مربع نص.
<DataTemplate>
<ContentPresenter x:Name="Presenter" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1">
<Setter TargetName="Presenter" Property="Content">
<Setter.Value>
<TextBlock Text="XXX" />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2">
<Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
لا تنتمي إلى StackOverflow