首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将内容控件附加到列表框?

如何将内容控件附加到列表框?
EN

Stack Overflow用户
提问于 2012-08-28 04:34:03
回答 1查看 190关注 0票数 0

XAML:

代码语言:javascript
复制
<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate >  
            <StackPanel >
                <Grid  Width="335"  >
                    <TextBlock Text="{Binding Body}"  />
                </Grid>
            </StackPanel>
        </DataTemplate>
        <DataTemplate > 
            <StackPanel >
                <Grid  Width="335"  >
                    <Image  Source="{Binding Image}"  />
                </Grid>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

政务司司长:

代码语言:javascript
复制
public class GardenConverter : ContentControl
{
    public DataTemplate TextTemplate { get; set; }
    public DataTemplate ImageTemplate { get; set; }

    protected override void OnContentChanged(object oldContent, object newContent)
    {
        base.OnContentChanged(oldContent, newContent);
        // apply the required template

        GardenObject garden = newContent as GardenObject;
        if (garden.image == "0")
        {
            ContentTemplate = TextTemplate;
        }
        else
        {
            ContentTemplate = ImageTemplate;
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 06:23:36

您可以尝试使用数据模板选择器。

代码语言:javascript
复制
public class GardenTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var element = container as FrameworkElement;
        if (element != null && item != null && item is GardenObject)
        {   
            if((item as GardenObject).image == "0")
            {
                return element.FindResource("TextTemplate") as DataTemplate;            
            }
            else
            {
                return element.FindResource("ItemTemplate") as DataTemplate;            
            }           
        }

        return null;
    }
}

在XAML中,您需要定义TextTemplate和ItemTemplate。

有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12149197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档