Tag: 强制

在WPF中将TabItem转换为UserControl

我的主屏幕上有一个Tab Control。 它有不同的标签项。 例如: Animals Calfs 等等.. 这是标签的设计时预览: 每个选项卡项控件都inheritance自WorkSpaceViewControl (从UserControl派生的抽象类) 正如您所看到的,有一个刷新按钮来刷新控件(重新加载它的数据网格成员) 刷新按钮后面的代码是: private void buttonRefresh_Click(object sender, RoutedEventArgs e) { //var x = mainTab.SelectedItem as TabItem; //MessageBox.Show(x.Header.ToString());//shows the header //var t = x.Content as TextBlock; //MessageBox.Show(t.Text); var ctrl = mainTab.SelectedItem as TabItem; var myCtrl1 = (WorkSpaceViewControl)ctrl; myCtrl1.Refresh(); } Refresh()是WorkSpaceViewControl类中的虚方法,并在后续类中重写。 每当我调用该代码时,它都会让我在编译时出错。 我已经尝试了很多种方法:隐式,显式( 你可以在上面的评论代码中看到一些尝试 )。 这是我试图实现的显式转换代码(但失败了): public static […]

依赖属性强制绑定问题

我安装了VS2008和VS2010,我看到了一个非常奇怪的行为 在VS2008中,我有一个简单的WPF应用程序: 和 public Window1() { InitializeComponent(); DataContext = this; } public string MyProperty { get { return (string)GetValue(MyPropertyProperty); } set { SetValue(MyPropertyProperty, value); } } public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register(“MyProperty”, typeof(string), typeof(Window1), new PropertyMetadata(“default”,null,Coerce)); private static object Coerce(DependencyObject d, object baseValue) { return “Coerced Value”; } 当我在文本框中输入随机字符串并点击标签时,我希望textbox.Text重置为“Coerced Value”。 如果我调试我发现应用程序在Coercefunction中断,但UI没有更新。 有趣的是,这个相同的代码在VS2010中工作,UI使用Coerced值进行更新。 谁有想法发生了什么? 它是WPF错误吗? […]

为什么Linq Cast 助手不能与隐式强制转换操作符一起使用?

请在决定投票前重复阅读… 我有一个类型,它实现了另一种类型的implicit cast运算符: class A { private B b; public static implicit operator B(A a) { return ab; } } class B { } 现在,隐式和显式转换工作正常: B b = a; B b2 = (B)a; ……那么Linq的.Cast怎么没有? A[] aa = new A[]{…}; var bb = aa.Cast(); //throws InvalidCastException 查看.Cast的源代码,没有太大的魔力:如果参数确实是IEnumerable ,则会出现一些特殊情况,然后: foreach (object obj in source) yield return (T)obj; […]