首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从代码设置ItemContainerStyle

从代码设置ItemContainerStyle
EN

Stack Overflow用户
提问于 2012-04-24 22:39:57
回答 1查看 4K关注 0票数 0

我正在处理一个自定义的wpf控件,它是从ListBox派生的,并且正在尝试将一些格式应用到自定义属性。当特定的自定义属性为false时,我希望对ListBox应用一些格式设置。我正在使用以下代码尝试应用样式-

代码语言:javascript
复制
var t = new Trigger();                

var BackgroundSetter = new Setter {Property = BackgroundProperty, Value = null};
var BrushSetter = new Setter { Property = BorderBrushProperty, Value = null };

t.Setters.Add(BackgroundSetter);
t.Setters.Add(BrushSetter);

var s = new Style(typeof(ListBox));
s.Triggers.Add(t);

editor.ItemContainerStyle.Triggers.Add(t);

我也尝试了下面的方法,但没有成功-

代码语言:javascript
复制
editor.ItemContainerStyle = s;

我得到了一个错误,表明某个对象没有初始化,单步执行显示editor.ItemContainerStyle为空。实际的错误消息只是说调用的目标抛出了异常。

有人知道我可能做错了什么吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-28 00:37:52

我能够让它工作-下面是我最终实际使用的代码-

代码语言:javascript
复制
public bool IsSelectable
{
    get { return (bool)GetValue(IsSelectableProperty); }
    set { SetValue(IsSelectableProperty, value); }
}

public static DependencyProperty IsSelectableProperty = DependencyProperty.Register("IsSelectable", typeof(bool), typeof(ListEditor), new FrameworkPropertyMetadata(true, new PropertyChangedCallback(IsSelectablePropertyChanged)) { BindsTwoWayByDefault = true });

private static void IsSelectablePropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
    var editor = sender as ListEditor;

    var s = new Style(typeof(ListBoxItem));                
    var enableSetter = new Setter {Property = IsEnabledProperty, Value = editor.IsSelectable};
    s.Setters.Add(enableSetter);

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

https://stackoverflow.com/questions/10300228

复制
相关文章

相似问题

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