WPF DataGrid Binding DataGridcell محتوى
-
29-09-2019 - |
سؤال
نأمل أن تكون هذه إجابة بسيطة حقًا ، فأنا لا أرى الخشب المثل للأشجار التي أعتقدها.
لقد حصلت على نمط datagridcell حيث أريد ربط محتوى الخلية بالخاصية المصدر لصورة ما ، إليك xaml التي أستخدمها في الوقت الحالي:
<Style x:Key="DataGridImageCellStyle" TargetType="{x:Type toolkit:DataGridCell}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type toolkit:DataGridCell}">
<Border Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="0"
SnapsToDevicePixels="True">
<Image Source="{Binding RelativeSource={RelativeSource AncestorType=toolkit:DataGridCell}, Path=Content}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
لاحظ أنه في الوقت الحالي ، أقوم بربط مصدر الصورة بالمحتوى .. وهو ما لا يعمل ، لقد جربت أيضًا القيمة ، التي لم تنجح!
لذا فإن سؤالي هو ، جميل وبساطة .. ما هو الربط الصحيح لاستخدامه للحصول على محتوى الخلية في خاصية المصدر لهذه الصورة؟
شكرا مقدما!
بيت
المحلول
إذا كان العمود عبارة عن dataGridTextColumn ، فقد تتمكن من ربط خاصية النص الخاصة بـ textblock التي هي محتوىها:
<Image Source="{Binding RelativeSource=
{RelativeSource AncestorType=DataGridCell}, Path=Content.Text}" />
هذا حقا اختراق ، رغم ذلك. إذا كنت ترغب في عرض صورة في عمود ، فيجب عليك استخدام ملف DataGridTemplateColumn:
<DataGridTemplateColumn Header="...">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding SomeProperty}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
حيث يكون SORYPROPERTY خاصية كائن الصف الخاص بك الذي يحتوي على مسار الصورة.