小编Kir*_*kov的帖子

是什么导致WPF应用程序中的InvalidDeploymentException?

我开发了一个WPF应用程序,当我在调试模式下启动它时,我在输出中看到以下内容:

'WpfApplication1.vshost.exe'(Managed(v2.0.50727)):已加载'C:\ WINDOWS\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll',已加载符号.System.Deployment.dll中发生类型为"System.Deployment.Application.InvalidDeploymentException"的第一次机会异常附加信息:未设置应用程序标识.

如果我在另一个WPF应用程序中使用此应用程序中的控件,则输出中有7个此类消息.不过,该应用程序运行正常.

你能解释一下抛出这些异常的原因吗?我发现该方法ApplicationDeployment.get_CurrentDeployment引发了它们.在MSDN中写道,当您"试图从非ClickOnce应用程序调用此静态属性时"出现此异常.我无法理解它的含义.

我发现类似的帖子InvalidDeploymentException - 没有设置应用程序标识但是没有这个问题的答案.

.net wpf exception swallowed-exceptions

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

ListBox.ItemsSource绑定代码和xaml

我写了简单的代码

public ObservableCollection<string> Names …
public Window1()
{
    PutInDataIntoNames();
    InitializeComponent();
    this.listBox1.ItemsSource = Names;
}
Run Code Online (Sandbox Code Playgroud)

并在xaml

<Grid>
    <ListBox Margin="10,11,10,16"
         Name="listBox1"
         Background="Black" 
         Foreground="Orange" 
         />
</Grid>
Run Code Online (Sandbox Code Playgroud)

然后我想在xaml中设置ItemsSource属性.为了做到这一点,我写了以下内容:

ItemsSource="{Binding Path=Names}"
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用.你能解释为什么以及如何做到这一点吗?

wpf listbox itemssource

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

如何在ListBox的Items中使用绑定到ViewModel的属性

我有一个ListBox,显示MyObjects的集合.该集合位于ViewModel中.我想处理ListItem上的按钮单击,但绑定有一些麻烦.如果属性绑定到MyObject属性,DataTemplate中的绑定可以正常工作.但是如何将它从ViewModel绑定到属性?

第二个问题我如何使用处理点击事件的代码中的项目信息.例如,我想从项目的TextBox中打印出文本.

代码是这样的:

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <Button Content="{Binding .}"
                Command="{Binding ClickCommand}" /> <!--It doesn't work-->
    </DataTemplate>

</Window.Resources>
<ListBox x:Name="ListBox"
         ItemsSource="{Binding Path=Objects}"
         IsSynchronizedWithCurrentItem="True"
         ItemTemplate="{StaticResource ItemTemplate}"/>
Run Code Online (Sandbox Code Playgroud)

C#:

public partial class MainWindow : Window
{
    VM m_vm;

    public MainWindow()
    {
        m_vm = new VM();
        this.DataContext = m_vm;
        InitializeComponent();
    }
}

public class VM
{
    ObservableCollection<string> _objects;

    public ObservableCollection<string> Objects
    {
      get { return _objects; }
      set { _objects = value; }
    }

    public VM()
    {
        _objects = new ObservableCollection<string>();
        Objects.Add("A");
        Objects.Add("B");
        Objects.Add("C");
    } …
Run Code Online (Sandbox Code Playgroud)

wpf mvvm

7
推荐指数
1
解决办法
6009
查看次数

如何使用SSE执行uint32/float转换?

在SSE中有一个函数_mm_cvtepi32_ps(__m128i input),它接受32位宽的有符号整数(int32_t)的输入向量并将它们转换为floats.

现在,我想将输入整数解释为未签名.但是没有功能_mm_cvtepu32_ps,我找不到一个实现.你知道我在哪里可以找到这样的功能,或者至少对实现有所暗示吗?为了说明结果的差异:

unsigned int a = 2480160505; // 10010011 11010100 00111110 11111001   
float a1 = a; // 01001111 00010011 11010100 00111111;  
float a2 = (signed int)a; // 11001110 11011000 01010111 10000010
Run Code Online (Sandbox Code Playgroud)

c x86 sse simd

7
推荐指数
2
解决办法
2057
查看次数

无法使用JavaScriptDateTimeConverter解析数据

我尝试使用Json.net解析简单的JSON

 string inputJson = @"
                {
                 ""modificationTime"" : ""\/Date(1224043200000)\/""
                 }";
Run Code Online (Sandbox Code Playgroud)

财产是定义的

[JsonProperty("modificationTime")]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime ModificationTime { get; set; }
Run Code Online (Sandbox Code Playgroud)

但DeserializeObject使用以下消息抛出异常:"解析日期时出现意外的标记或值.令牌:日期,值:10/15/2008 04:00:00"

好吧,据我所知它实际上已经解析了日期,不是吗?从JavaScriptDateTimeConverter.cs中的第68行抛出此异常:

68 if (reader.TokenType != JsonToken.StartConstructor ||  string.Compare(reader.Value.ToString(), "Date", StringComparison.Ordinal) != 0)
69            throw new Exception("Unexpected token or value when parsing date. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, reader.TokenType, reader.Value));
70    
71          reader.Read();
Run Code Online (Sandbox Code Playgroud)

在这个地方reader.TokenType是Date和reader.Value.ToString()是10/15/2008 04:00:00.有任何想法吗?

c# json json.net

6
推荐指数
1
解决办法
4130
查看次数

将 kinects 深度转换为 RGB

我正在使用 OpenNI 和 OpenCV(但没有支持 openni 的最新代码)。如果我只是将深度通道发送到屏幕 - 它会看起来很暗并且难以理解。所以我想以一种颜色为用户显示一个深度通道,但无法找到如何在不损失准确性的情况下做到这一点。现在我这样做:

xn::DepthMetaData xDepthMap;
depthGen.GetMetaData(xDepthMap);
XnDepthPixel* depthData = const_cast<XnDepthPixel*>(xDepthMap.Data());
cv::Mat depth(frame_height, frame_width, CV_16U, reinterpret_cast<void*>(depthData));

cv::Mat depthMat8UC1;
depth.convertTo(depthMat8UC1, CV_8UC1);

cv::Mat falseColorsMap;
cv::applyColorMap(depthMat8UC1, falseColorsMap, cv::COLORMAP_AUTUMN);
depthWriter << falseColorsMap;
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我得到的输出比 Windows 的 kinects 软件显示的更糟糕(丢失细节)。所以我正在寻找 OpenNI 或 OpenCV 中具有更好转换的函数。

opencv kinect openni

5
推荐指数
1
解决办法
2619
查看次数

如何将DataTemplate添加到资源中?

我有一个类向导,它使用在同一项目中定义的页面创建向导。PageViewModel与PageView是分开的。PageViewModel是从PageViewModelBase抽象类派生的普通C#类,而PageView是UserControl。为了定义PageViewModel和PageView之间的映射,我为项目中的每个页面编写了以下代码:

 <Window.Resources>
    <DataTemplate DataType="{x:Type OurNewPageViewModel}">
      <OurNewPageView />
    </DataTemplate>
  </Window.Resources>
Run Code Online (Sandbox Code Playgroud)

现在,我想在用户代码调用向导的构造函数时向向导添加页面。这意味着将Pages View和ViewModel移到用户端。例如,为了用一页创建一个向导,用户将编写以下代码:向导usersWizard = new Wizard(new usersViewModel(),new userView()); 问题是我不知道如何在构造函数中提供viewModel和View之间的映射。据我了解,我可以使用两种不同的方法来解决此问题。首先,要使用FrameworkElementFactory,但以下代码将不起作用:

        //let we have WelcomePageView wpview and WelcomePageViewModel wpviewmodel

        FrameworkElementFactory fef = new FrameworkElementFactory(wpview.GetType());
        DataTemplate dt = new DataTemplate();
        dt.DataType = wpview.GetType();

        dt.VisualTree = fef;

        base.Resources.Add(wpviewmodel.GetType(), dt);
Run Code Online (Sandbox Code Playgroud)

其次,使用XamlReader。我可以使用它创建一个数据模板,但是我不知道如何将其附加到资源上。

wpf mvvm

4
推荐指数
1
解决办法
1742
查看次数

用于项目文件编辑的Visual Studio加载项(csproj)

你知道visual studio的加载项,它为C#项目增加了属性吗?csproj文件格式非常强大,但只能通过标准属性页面更改少量选项.例如,我想要有几个配置,每个配置都应该包含它自己的引用.或者我只想将项目类型从winforms更改为wpf或其他类型.为了做这样的事情,开发人员必须在文本编辑器中手动编辑csproj而不是使用属性.如果你知道这样的加载项不存在,你认为它可能在codeplex上流行吗?或者只有少量开发人员需要它?你有什么意见?

c# visual-studio-addins visual-studio-2010 visual-studio

4
推荐指数
1
解决办法
5798
查看次数

LLVM和Clang对C++ 11的支持

我有一些代码写给MS VC++ 10的代码.我使用C++ 11,特别是像

std::function<int (int)> f =...;
auto it = v.begin();
for_each(it1, it2,[&](int& i) { ++i;}); 
Run Code Online (Sandbox Code Playgroud)

现在我用llvm&clang尝试MacOS和XCode,我的代码无法编译!问题是为什么?也许,我将指定一个使用c ++ 11的选项.在这种情况下,我在哪里可以在xcode中修复它?

c++ xcode llvm clang c++11

4
推荐指数
2
解决办法
5955
查看次数

如何重用控件模板?

我可以创建参数化控件模板,即创建可能包含不同控件的控件模板.例如,我可以使用带有标签或按钮的控制模板 - 无论我想要什么位置.

<ControlTemplate x:Key="MessageCTemplate">
<Grid …>
  <Rectangle …/>
  <Rectangle …/>
  <Rectangle …/>
  …
  <!--I want to have here button, label or whatever I want-->
  <label x:Name=”MsgLabel”>
<Grid/>

<Style x:Key="MsgStyle" TargetType="{x:Type Button}">
      <Setter Property="Opacity" Value="0.6" />
      <Setter Property="Template" Value="{StaticResource MessageCTemplate}" />
<Style/>
Run Code Online (Sandbox Code Playgroud)

我不喜欢编写相同的控件模板,它们的代码中只有一个不同的字符串.或者,也许,我误解了smth,另一种避免复制过去的方式存在.

wpf

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

TabControls(MVVM)中的延迟加载

我有一个TabControl,显示我的ViewModel的集合.ViewModel和View之间的映射由DataTemplate实现.我使用MVVM但没有PRISM(由于历史原因).ViewModel的Base类有一个Load加载信息的方法.我想要做的是仅在选择与当前ViewModel相对应的TabItem(延迟加载)时调用此方法.有任何想法吗?PS我找到了类似问题的答案 - 懒惰加载WPF标签内容 但我无法理解如何在MVVM中使用方法2.

wpf mvvm

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