如何 return 来自 ValueConverter 的堆栈面板元素并使其正确显示

How can I return a stackpanel element from a ValueConverter and get it to display properly

我有一个绑定到的数据网格,我有一个 valueConverter,我将一个对象发送到该对象,希望返回一个带有一些文本的图像(放在堆栈面板中)。但是,在显示所有我在 gridview 单元格中看到的是 System.Windows.Control.StackPanel.

这里是xaml。我正确绑定了 GrieView ItemsSource,进入转换器的值是正确的。

<telerik:GridViewDataColumn DataMemberBinding="{Binding Converter={StaticResource MyConverter}}" IsReadOnly="True">
 <telerik:GridViewDataColumn.Header>
  <TextBlock FontWeight="Bold" Text="Text" />
 </telerik:GridViewDataColumn.Header>
</telerik:GridViewDataColumn>

这基本上就是转换器所做的。

StackPanel stackpanel = new StackPanel();
stackpanel.Orientation = Orientation.Horizontal;
stackpanel.Children.Add(Adds a UI element);

TextBlock textBlock = new TextBlock();
textBlock.Text = appendingText;
stackpanel.Children.Add(textBlock);
return stackpanel;

但在 gridviewCell 中显示的只是一个字符串 System.Windows.Controls.StackPanel。任何帮助将不胜感激,谢谢!

尝试使用 GridViewColumn 并使用您的转换器绑定 ContentControlContent 属性:

<telerik:GridViewColumn IsReadOnly="True">
    <telerik:GridViewColumn.Header>
        <TextBlock FontWeight="Bold" Text="Text" />
    </telerik:GridViewColumn.Header>
    <telerik:GridViewColumn.CellTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding Converter={StaticResource MyConverter}}" />
        </DataTemplate>
    </telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>