我在wpf中使用反射得到一个错误“调用目标抛出了异常”

时间:2014-11-24 05:45:31

标签: c# wpf

我正在尝试使用反射来修改radiobutton的可见性属性。我能够使用GetProperty方法查看可见性的当前值,但是当我使用SetValue方法时,我收到了错误。

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

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);

}

无线电按钮位于我的物体内。

1 个答案:

答案 0 :(得分:0)

RadioButton中的visibility属性是一个依赖属性。

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

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