2014-11-24 133 views
-2

我试图使用反射来修改单选按钮的可见性属性。我能够使用GetProperty方法看到当前的可见性值,但是当我使用SetValue方法时,我得到错误。我在wpf中使用反射出现错误“调用目标引发异常”

它是一个类库。这是我正在使用的方法。

public class setproperty(object obj) 
{ 
    Type x = obj.GetType(); 
    FieldInfo fi = x.GetField("radiobutton1", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); 

    var y = fi.GetValue(obj); 

    Type z = y.GetType(); 
    PropertyInfo pi = z.GetProperty("Visibility", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); 
    pi.SetValue(y, Visibility.Hidden, null); 

} 

单选按钮位于我的对象内。

+0

你什么时候想改变能见度? – jhenninger 2014-11-24 05:49:32

+2

所以....你正在使用的代码在哪里?如果我们看不到代码,我们怎么能说出问题所在? – slugster 2014-11-24 05:50:33

+0

我刚刚添加了我正在使用的方法。 – miabad 2014-11-24 06:19:28

回答

0

RadioButton中的visibility属性是一个Dependency属性。

DependencyObject radioButton = (DependencyObject)...; 
radioButton.SetValue(UIElement.VisibilityProperty, true); 

也可能是您正试图在非UI线程上访问它。但认真......我在黑暗中摸索着你的问题,因为你根本没有提供任何信息。

相关问题