Tag: .net 3.5

在WPF中的某些情况下会切断上下文菜单

上下文菜单在不同的.NET Framework中被截断。 查看ZIP文件中的图像(有两个截图,一个来自XP,另一个来自Win7)。 我创建了一个简单的Visual Studio 2010解决方案来重现我的问题。 ( http://www.mediafire.com/download.php?doq7gsh75qgvzwq )。 在XP上,它似乎工作正常,但不是在Windows 7上。 如果目标.NET Framework为3.5(包括SP1),则可以在Windows 7上重现该问题(请参阅zip中的图像)。 如果我将目标框架更改为4.0,它在Windows 7上也可以正常工作。 是否可以在Windows 7操作系统上的.NET Framework 3.5中使上下文菜单完全可见?

在.Net(C#)中构建Google商品Feed?

下面是我试图遵循的架构: The name of your data feed http://www.example.com A description of your content Red wool sweater http://www.example.com/item1-info-page.html Comfortable and soft … cold winter nights. http://www.example.com/image1.jpg 25 new 1a 以下是我能够制作的: The name of your data feed http://www.google.com A description of your content Red Wool Sweater http://www.google.com/Red-Wool-Sweater Comfortable and soft, this sweater will keep you warm on […]

其他用户进行更改时刷新Windows程序?

场景: 4个用户启动连接到基于数据库的待办事项列表的相同客户端程序(Winforms)的单独实例。 第一个用户选择第三个待办事项列表项。 如何更新/刷新其他3个用户屏幕以反映项目#3不再可用? 我的想法是一个包含最后更新日期时间戳的表。 然后计时器将每隔几秒检查一次,看看是否有任何变化。 UPDATE1: 感谢所有人 – 肯定有许多有效的答案。 我选择了Icemanind推荐的更简单版本的场景。

打印时如何确定字符串的宽度?

我正在创建一个自定义控件,其中一部分是使用Graphics类将颜色绘制到表单中。 目前我正在使用以下代码来显示它: private float _lineHeight { get { return this.Font.Size + 5; } } private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); Brush b = new SolidBrush(Colors[7]); g.DrawString(“Hello World!”, this.Font, b, 0, 2); g.DrawString(“This has been a test of the emergency drawing system!”, this.Font, b, 0, 2 + _lineHeight); } 我目前正在使用固定宽度字体,我想知道字体显示的宽度,但似乎没有这种信息的任何属性。 有没有办法获得它? […]

可变的值类型包装器,传递给迭代器

我正在编写一个需要传递可变整数的迭代器。 public IEnumerable Foo(ref int valueThatMeansSomething) { // Stuff yield return …; } 这让我知道“错误476迭代器不能有ref或out参数”。 我需要的是在迭代器中修改这个整数值,并由迭代器的调用者使用。 换句话说,无论上面的调用Foo()想要知道valueThatMeansSomething和Foo()的结束值都可以使用它本身。 真的,我想要一个引用类型的整数,而不是值类型。 我唯一能想到的是写一个封装了我的整数的类,允许我修改它。 public class ValueWrapper where T : struct { public ValueWrapper(T item) { this.Item = item; } public T Item { get; set; } } 所以: ValueWrapper w = new ValueWrapper(0); foreach(T item in Foo(w)) { // Do […]

在MVVM应用程序中切换ViewModel时出现BindingExpression路径错误

首先,一些背景。 如果您熟悉该问题,请跳至BindingExpression部分。 这是我在WPF中的第一个主要项目,所以我对MVVM模式还很陌生。 这是我发现的唯一一个类似的问题,其黯淡的回答并不能让我感到非常兴奋。 我/我正在构建一个.NET 3.5 WPF应用程序,我正在使用MVVM(自己实现,没有框架)。 在这里,我有许多Views和ViewModels 。 它们分别驻留在主ApplicationView和ApplicationViewModel 。 我更改视图的方式是在ApplicationView使用XAML DataTemplate元素,如下所示: 然后在主体中我有一个ContentControl,它绑定到ApplicationViewModel的属性 当我运行应用程序时,所有这些似乎工作正常,并完全符合预期。 但是,当我在运行后查看Debug输出时,我得到了很多BindingExpression错误。 这是一个例子。 我的SplashText有一个属性InitViewModel 。 这绑定到初始屏幕( InitView )中的文本块。 当启动画面结束并切换视图模型时,我得到以下内容: System.Windows.Data Error: 39 : BindingExpression path error: ‘SplashText’ property not found on ‘object’ ”MainMenuViewModel’ (HashCode=680171)’. BindingExpression:Path=SplashText; DataItem=’MainMenuViewModel’ (HashCode=680171); target element is ‘TextBox’ (Name=’FeedBackBox’); target property is ‘Text’ (type ‘String’) 我知道这是因为绑定仍然存在,但DataContext的CurrentPageViewModel属性已更改。 所以我想知道的是: 这是一个短暂的问题,即在不使用时处理的视图还是它们(以及坏的绑定)无限期地存在于内存中? […]

bool作为CheckBox的数据源(Bool更新在另一个线程中而不是它正在影响的线程)

我试图找到如何将bool分配给复选框。 我希望当我的bool数据发生变化时,我的checkbox.checked值会自动刷新。 我知道对于ComboBox,有一个DataSource属性,它使用一个列表,但我无法找到与复选框等效的。 我尝试使用checkBox.DataBindings,但它似乎不起作用。另一方面,我真的不知道第三个属性是什么意思。 checkBox.DataBindings.Add(“Checked”, DisableBugWatcher, “check”); 我需要这个,因为我有两个独立的窗口刷新相同的复选框值! 编辑: 我尝试使用Event更新我的主GUI,但它说: 跨线程操作无效:控制’checkBox’从一个线程访问,而不是创建它的线程。 问题是这样一个事实,即bool值是从另一个线程刷新而不是它影响的线程。

在C#中删除预编译器指令

我被要求保留一些不像遗产那样的代码,并且它充满了编译器指令,使它几乎不可读并且几乎可维护。 例证: #if CONDITION_1 protected override void BeforeAdd(LogEntity entity) #else protected override void BeforeAdd(AbstractBusinessEntity entity) #endif { #if CONDITON_1 entity.DateTimeInsert = DateTime.Now; #else ((LogEntity) entity).DateTimeInsert = DateTime.Now; #endif base.BeforeAdd(entity); } using指令甚至更漂亮: #if CONDITION_1 using CompanyName.Configuration; #endif #if CONDITION_2||CONDITION_1 using CompanyName.Data; using CompanyName.Data.SqlBuilders; #else using CompanyName.Legacy.Database; using CompanyName.Legacy.Database.SQLBuilders; using CompanyName.Legacy.Database.SQLBuilders.parameterTypes; #endif 我以为我会给ConditionalAttribute一个但是在这种情况下这不会起作用 有什么办法可以解决这个编译指令的噩梦吗? 代码是针对.NET 3.5编译的。 更新: […]

如何使用带有ODP(Oracle.DataAccess)的>> prepared query <<更新CLOB字段中的数据?

我正在尝试执行准备好的SQL查询,该查询更新Oracle 10g数据库(10.2.0.1)中的CLOB字段。 如果我从SQL Developer内部执行以下查询并提供占位符的值,则没有问题。 但是,如果我通过OracleCommand (Oracle.DataAccess.dll,版本1.102.0.1(我认为),.NET Framework 3.5)执行它,我会收到以下错误消息。 请注意,我们不使用默认的oracle客户端,因为我们需要批量插入。 不幸的是,给定的ODP版本和.NET Framework版本是一项艰难的要求,我们可能不会改变它。 查询: UPDATE master_table SET description = :description, modification_notes = :modification_notes WHERE master_id = :master_id; 错误: ORA-00932:不一致的数据类型:预期 – 获得CLOB 进一步的信息: 参数分配如下: var param_description = new OracleParameter(“:description”, OracleDbType.Clob); param_description.Value = “Test”; 我尝试过以下的事情: 将to_clob()插入SQL查询 将Oracle.DataAccess.Types.OracleClob对象分配给参数。 我也找到了以下描述,但我真的希望能够保留准备好的查询。 如何使用C#在Oracle中插入CLOB字段 是否可以通过准备好的查询来完成此操作? 我附上了一个产生错误的完整示例。 DESCRIPTION和MODIFICATION_NOTES是数据库中CLOB类型的两列。 输入数据: 连接: OracleConnection到数据库 master_id:要过滤的主键 码: 免责声明:我手动输入以下示例,可能存在实际代码中没有的错误 var […]

如何使用.NET 4.0读取.RTF文件

我见过使用Word 9.0对象库的示例。 但我在VS2010中安装了Office 2010 Beta和.NET 4.0。 有关如何使用新Word Dlls的任何提示? 所以我只是想用.NET3.5或更高版本获得RTF到TEXT的function。