سؤال

نأمل أن تكون هذه إجابة بسيطة حقًا ، فأنا لا أرى الخشب المثل للأشجار التي أعتقدها.

لقد حصلت على نمط 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 خاصية كائن الصف الخاص بك الذي يحتوي على مسار الصورة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top