小编Sam*_*Sam的帖子

从c#调用c ++函数指针

是否可以像这样调用ac(++)静态函数指针(不是委托)

typedef int (*MyCppFunc)(void* SomeObject);
Run Code Online (Sandbox Code Playgroud)

来自c#?

void CallFromCSharp(MyCppFunc funcptr, IntPtr param)
{
  funcptr(param);
}
Run Code Online (Sandbox Code Playgroud)

我需要能够从c#回调到一些旧的c ++类.C++是托管的,但类不是ref类(还).

到目前为止,我不知道如何从c#调用c ++函数指针,是否可能?

c# c++ function-pointers

18
推荐指数
1
解决办法
2万
查看次数

Visual C++ 2008"发布"版本包含调试信息

我注意到在使用MS Visual Studio 2008生成新的C++项目时,Release版本包含调试符号 - 特别是启用了以下设置:

  • C++/General/Debug信息格式设置为Program Database.
  • 链接器/调试/生成调试信息设置设置为.

我在Visual Studio的早期版本中从未注意到这一点.

因此,除了生成更大的EXE文件之外,启用这些设置是否有任何缺点?

c++ debugging visual-studio

17
推荐指数
1
解决办法
1万
查看次数

WPF DataGrid在IEditableObject上调用BeginEdit两次?

我有一个DataGrid绑定到IEditableObject的集合.

现在当我在一个单元格中单击两次时,它将被打开以进行编辑.

有趣的是:BeginEdit将被调用两次.有时对于相同的EditableObject,但有时对于两个不同的对象(特别是当我使用PgDn直到我到达DataGrid的末尾)时,将首先调用正确的一个,然后从集合中调用其他一些项目,之前从未进行过聚焦.

EndEdit也被调用两次,但始终用于所选项,而不是错误的项.

这是一个已知的问题吗?任何解决方法只能获得(右侧)一个通知.

wpf datagrid ieditableobject

17
推荐指数
1
解决办法
5990
查看次数

WPF MV-VM:从ListCollectionView中获取所选项目?

我有一个使用Model-View-ViewModel模式的WPF应用程序.
在我的ViewModel中,我有一个ListCollectionView来保存项目列表.
此ListCollectionView绑定到我的View中的ListBox.

<ListBox Grid.Row="1" ItemsSource="{Binding Useragents}" SelectionMode="Multiple"/>
Run Code Online (Sandbox Code Playgroud)

ListBox的SelectionMode = Multiple,因此您可以一次选择更多项目.现在,ViewModel需要知道选择了哪些项目.

问题是:在View-Model-ViewModel模式中,ViewModel无法访问View,因此我不能只询问ListBox选择了哪些项目.我只有ListCollectionView,但我找不到一种方法来找到那里选择的项目.

那么如何在ListBox中找到已选择的项目?或者实现这一目标的技巧(可能在我的项目中将某些东西绑定到布尔'IsSelected'但是什么?怎么样?)

也许有人正在使用这种模式,可以帮助我吗?

wpf listbox mvvm

16
推荐指数
2
解决办法
2万
查看次数

WPF TextBox输入十进制值

是否有任何体面的方法来获得绑定到十进制值的WPF控件?

当我将TextBox或DataGridTextColumn绑定到小数时,数据条目会耗费大量时间.

<TextBox Text="{Binding MyDecimal, UpdateSourceTrigger=PropertyChanged, 
    ValidatesOnDataErrors=True}"/>
Run Code Online (Sandbox Code Playgroud)

当我尝试在此TextBox中输入"0,5"时,我将得到"5".根本不可能输入"0,5"(除了输入1,5并用"0"替换"1").

当我使用StringFormat时,数据输入仍然很少:

<TextBox Text="{Binding MyDecimal, StringFormat=F1, UpdateSourceTrigger=PropertyChanged,
    ValidatesOnDataErrors=True}"/>
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试输入"0,5"时,我最终会得到"0,5,0",这仍然是错误的,但至少我可以删除尾随的"0"而没有太多问题.

尽管如此,使用WPF输入小数会吸引大量时间,因为此输入字段非常容易出现数据输入错误,这对于值来说尤其令人痛苦!

那么我应该用什么来为wpf中的十进制数据输入?或者微软不支持十进制数据?

wpf decimal data-entry

16
推荐指数
5
解决办法
4万
查看次数

什么是Keyboard.Focus(item)和item.Focus()之间的区别?

在WPF中,有两种方法可以将焦点设置为元素.
您可以调用input元素的.Focus()方法,也可以使用input元素作为参数调用Keyboard.Focus().

// first way:
item.Focus();
// alternate way:
Keyboard.Focus(item);
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?在某些情况下,是否有特殊原因使用其中一个而不是另一个?
到目前为止,我注意到没有任何区别 - 无论使用哪种方法,该项目始终具有逻辑焦点以及键盘焦点.

.net wpf

15
推荐指数
2
解决办法
5029
查看次数

如何将Win32窗口设置为WPF窗口的所有者?

我想在传统的win32应用程序中使用WPF窗口.我想以类似的方式表现它们,就像WPF窗口始终显示在win32窗口之上.

为此,我想将WPF窗口的所有者设置为win32窗口,但我不知道如何实现这一点.

这里有什么帮助?

由于答案隐藏在一些链接后面,这里的代码就是诀窍:

System::Windows::Interop::WindowInteropHelper^ helper = gcnew System::Windows::Interop::WindowInteropHelper(myWpfChildWindow);
helper->Owner = (System::IntPtr)myMainWindowHWND;
Run Code Online (Sandbox Code Playgroud)

wpf winapi owner

15
推荐指数
1
解决办法
1万
查看次数

在azure上托管WCF服务

我有一个wcf服务,我想在azure上运行,但我有几个问题:

首先:我是否选择Web角色或辅助角色来运行wcf服务?

第二:客户端使用呼叫登录服务,之后服务应记住谁登录(会话).问题是,出于防火墙的原因,我可能应该使用一些http绑定.但这些似乎不支持会议?
或者我是否需要AppFabric进行会话(无论如何,AppFabric是什么?)?

是否有一个很好的完整教程如何托管wcf服务?

wcf azure

14
推荐指数
1
解决办法
1万
查看次数

WPF TextBox绑定到十进制尊重文化

我已将TextBox绑定到Decimal.我的问题是,Binding使用美国数字标准,使用点进行小数分隔("1.5")

我的系统是德语,并配置为使用逗号作为小数分隔("1,5").

我需要TextBox绑定来显示并使用逗号而不是点来分隔小数.

如何获得绑定以尊重当前设置的数字输入的本地化/文化设置?

wpf binding localization

12
推荐指数
1
解决办法
3934
查看次数

在Windows Phone 7上获取汇编版本

在我的c#应用程序中,我通常使用以下代码获取版本(以显示客户):

System.Reflection.Assembly.GetExecutingAssembly().GetName().Version
Run Code Online (Sandbox Code Playgroud)

这在Windows Phone 7中不起作用(它会挂起模拟器,而电话崩溃对MS来说是禁忌).

那么,我如何在Windows Phone 7设备上获得执行的版本?

[更新]如下面的评论中所述,在wp7应用程序中调用GetName()似乎是个问题.

reflection windows-phone-7

12
推荐指数
1
解决办法
4801
查看次数