小编Jam*_*eet的帖子

WPF如何根据treeviewitem类型更改contextmenu项?

我有一个TreeView项目,我想要ContextMenu只弹出第二层项目.我该怎么做呢?

c# wpf treeview xaml contextmenu

3
推荐指数
1
解决办法
2031
查看次数

visual studio可以使用gcc生成的调试信息吗?

非常简单的问题.我有一个在gcc中使用-g选项生成的可执行文件,用于将调试信息输出到可执行文件中?我可以将这个调试符号信息输入visual studio吗?或者,如果我想调试,我是否需要下载32位gdb和gdb前端?

或者也许有一些方法可以让gcc生成数据视觉工作室想要的?

c++ gcc visual-studio

3
推荐指数
1
解决办法
1818
查看次数

C#中的事件是否结构化?

所以我有一个EventHandlers的字典,但我发现当我在将keyvaluepair添加到字典之前附加到一个事件时,一切正常.但是,如果我添加keyvaluepair然后更新eventhandler的值,则字典不会更新.

public static event EventHandler TestEvent;
private static Dictionary<int, EventHandler> EventMapping = new Dictionary<int, EventHandler>();

 //TestEvent += GTKWavePipeClient_TestEvent;

  EventMapping.Add(0, TestEvent);
  TestEvent += GTKWavePipeClient_TestEvent;
  //test event is non null now. keyvaluepair in EventMapping has a value of null
Run Code Online (Sandbox Code Playgroud)

c# events

3
推荐指数
1
解决办法
490
查看次数

网站 javascript 中未处理的异常会发生什么?

我最近发生了一个异常,直到我查看 chrome 开发工具控制台时才注意到。

网站的 javascript 是否只是在某个更高级别处理和记录异常?我没有处理下面 function1 中的异常,所以后面的函数只是没有运行或什么的。

发生异常时究竟会发生什么?我习惯了一个未处理的异常意味着程序刚刚停止

containingFunction
{
   function1();
   function2()
   function3()
   return;
}
Run Code Online (Sandbox Code Playgroud)

javascript

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

C#字典vs列表用法

我有两个问题.我想知道在C#库中是否有一个简单的类来存储值对而不是一个,这样我就可以在列表的同一节点中存储一个类和一个整数.我认为最简单的方法是创建一个容器类,但每次都是额外的工作.我想知道我是否应该这样做.我知道在.NET的更高版本(我使用的是3.5)中,我可以存储有元组,但这对我来说是不可用的.

我想更大的问题是使用字典存储整数类映射的内存缺点是什么,即使我不需要在O(1)中访问并且只能搜索列表?哈希表的最小大小是多少?我应该制作我需要的包装类吗?

c# dictionary hashtable list

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

MVVM什么时候为控件创建一个viewmodel?

或者我应该只为正在表示的域数据创建视图模型?在阅读MVVM时,我遇到了这个:

"ViewModel负责这些任务.这个术语的意思是"视图的模型",可以被认为是视图的抽象,但它也提供了视图可用于数据绑定的模型的特化.后一个角色ViewModel包含将Model类型转换为View类型的数据转换器,它包含View可用于与Model交互的命令."

http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx

如果viewmodel是视图的模型,那么将视图的属性放在viewmodel而不是视图本身后面的代码中是不是有意义?

我想在制作自定义控件时,我很难决定何时应该在控件的代码后面添加一个属性,以及何时为控件创建一个viewmodel来表示它.老实说,我觉得将所有控件的视图相关属性移动到viewmodel会清理控件后面的代码,只留下控制逻辑.

但是,如果我要改变这样的事情,那么当项目需要来自控件本身的属性时,我不能再使用{Binding ElementName = control,Path = property}而必须获取父项的数据上下文(因为当前的datacontext将位于可观察集合的各个子项目上.

基本上我在考虑是否应该将属性从类GraphViewer移动到GraphViewerViewModel然后绑定到它.

代码值一百万字所以:public class GraphViewerViewModel:DependencyObject {private const int DEFAULT_PEN_WIDTH = 2; private const int DEFAULT_GRAPH_HEIGHT = 25;

    public SignalDataViewModel _SignalDataViewModel
    {
      get;
      set;
    }
    public PreferencesViewModel _PreferencesViewModel
    {
      get;
      set;
    }
}
Run Code Online (Sandbox Code Playgroud)

与此同时

public class SignalDataViewModel : INotifyPropertyChanged
  {
    public event PropertyChangedEventHandler PropertyChanged;

    ObservableCollection<SignalViewModel> _signals;
    public ObservableCollection<SignalViewModel> Signals
    {
      get
      {
        return _signals;
      }
      private set
      {
        _signals = value;
      }
    }

    ObservableCollection<SignalViewModel> _AddedSignals;
    public ObservableCollection<SignalViewModel> AddedSignals
    {
      get
      { …
Run Code Online (Sandbox Code Playgroud)

c# xaml mvvm

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

如何在wpf中设置xaml的相对uri?

所以我想知道相对uri应该相对于哪里设置.我以为这是主要项目.

我将图像存储在文件夹图像下.images文件夹直接在DaedalusGraphViewer项目下的解决方案下也有同名的名字(DaedalusGraphViewer).

我曾假设相对uri与项目相关,但我似乎没有任何运气.从代码背后做的其他想法也是受欢迎的.我之前从代码中完成了所以我可以想出来,因为我可以在那里更好地调试它,但我更愿意在xaml中做到这一点.

我在用

<ResourceDictionary Source="DaedalusGraphViewer/ResourceDictionaries/GraphViewerBrushes.xaml" />
Run Code Online (Sandbox Code Playgroud)

在其他地方做同样的事情,所以我看不出我做错了什么.

  <Button 
    Height="50" 
    VerticalAlignment="Top"
    >
    <Image Width="50" Height="50" Source="Images/zoominbutton.bmp" Stretch="Fill"/>
  </Button>
Run Code Online (Sandbox Code Playgroud)

编辑:仍然没有运气,不知道我做错了什么.

我修改了代码以使用更小的测试用例.

理想情况下,我希望能够从xaml设置图像路径,但是现在我正在尝试代码,只是为了看看我是否可以找出任何可以使其工作的代码.

<Window 
  x:Class="TestApp.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="300" Width="300"
  Loaded="Window_Loaded"
  >
    <Canvas x:Name="MainCanvas">
    <!--<Image x:Name="ImageSource2" Width="50" Height="50" Source="/DaedalusGraphViewer;component/images.jpg" Stretch="Fill"/>-->
      <!--<Image x:Name="imagetest" Stretch="Fill" Width="50">
        <Image.Source>
          <BitmapImage
              DecodePixelWidth="200"
              UriSource="/Images/images.jpg"/>
        </Image.Source>
      </Image>-->

    <!--<Image Width="50" Source="../../Images/images.jpg" Stretch="Fill"/>-->
  </Canvas>
</Window>


namespace TestApp
{
  /// <summary>
  /// Interaction logic for Window1.xaml
  /// </summary>
  public partial class Window1 : Window
  {
    public Window1()
    {
      InitializeComponent();
    }

    private void …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml uri

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

如何在Visual Studio Community Edition中将pthread库添加到C++项目?

我希望能够在visual studio中使用pthread,因为我正在使用它进行调试,并且在这里遵循教程.

http://web.cs.du.edu/~sturtevant/pthread.html

看起来很简单,将.h文件添加到C++ include目录并将.lib文件添加到lib目录.

但是,当检测到.h文件时,我收到一个错误:

Error   1   error LNK2019: unresolved external symbol __imp__pthread_create 
Run Code Online (Sandbox Code Playgroud)

我认为这意味着没有正确检测.lib文件.

我想我可以使用它的完整路径将.lib文件添加到Project Properties - > Linker - > Additional Dependencies的lib列表中,如下所示:

D:\Visual Studio\VC\lib\pthreadVC2.lib;kernel32.lib;user32.lib;
Run Code Online (Sandbox Code Playgroud)

不确定将新的lib附加到列表的开头或列表的末尾是否有任何好处,但似乎都不起作用.

在命令行选项卡中,我们可以看到实际运行的命令(我认为):

/OUT:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.exe" /MANIFEST /NXCOMPAT /PDB:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.pdb" /DYNAMICBASE "D:\Visual Studio\VC\lib\pthreadVC2.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\NamedPipeTest.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 
Run Code Online (Sandbox Code Playgroud)

有谁知道我可能做错了什么?最终我总是可以在我的cygwin环境中进行调试,但我在那里使用的调试器并不是那么好.

另外,我认为能够将图书馆添加到视觉工作室似乎是一项有用的技能.

c++ visual-studio libraries

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

如何在 Rust 中打印 let-else 语句中的错误?

我更喜欢使用 let else 语句,因为它消除了代码中的嵌套

let Ok(result) = function_call_that_returns_a_result() else {
   return "error message".into();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 if let、else 或 match 语句,我就可以访问内部的实际错误消息。

if let Err(err) = function_call_that_returns_a_result() {
  return format!("Error: {}", error).into();
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以避免使用第二种方法?因为如果我这样使用它,我会得到额外的嵌套。

if let Some(value) = function_call_that_returns_a_result() {
   // value is available one level nested
}
Run Code Online (Sandbox Code Playgroud)

其他方法也可供考虑。我想避免必须检查相同的可选两次,否则,我只会检查一次,打印错误,然后在保证它不包含错误后 unwrap() 。然而,这种方法感觉很笨拙。

rust

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

仅当treeview具有绑定到它的项目时,如何使controltemplate中的控件可见

所以我有这个控制模板,我想要signalnamepanel(只是一个时间标签,我将在它旁边添加一个x轴)只有当项目绑定到Treeview时才会显示.

否则它看起来会很奇怪,因为namepanel会自动浮动.我猜我需要使用某种类型的触发器,但我不确定我会触发什么.

<Style x:Key="{x:Type TreeView}" TargetType="TreeView">
      <Setter Property="OverridesDefaultStyle" Value="True" />
      <Setter Property="SnapsToDevicePixels" Value="True" />
      <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
      <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="TreeView">

              <ScrollViewer 
                Focusable="False"
                CanContentScroll="False"
                Padding="4">
                <StackPanel>
                  <Grid>
                    <Grid.ColumnDefinitions>
                      <ColumnDefinition Width="19" />
                      <ColumnDefinition Width="*" />
                      <ColumnDefinition Width="{Binding ElementName=graph_viewer, Path=signal_graph_window_width, Mode=OneWay}" />
                    </Grid.ColumnDefinitions>
                    <wpfExp:SignalNamePanel Grid.Column="1"
                      Height="{Binding ElementName=graph_viewer, Path=GraphHeight, Mode=OneWay}"
                      MainText="Time" 
                    />
                    <wpfExp:SignalGraphAxis Grid.Column="2"
                      Height="{Binding ElementName=graph_viewer, Path=GraphHeight, Mode=OneWay}"                
                      PenWidth="{Binding ElementName=graph_viewer, Path=GraphPenWidth, Mode=OneWay}"
                      X_Scale="{Binding ElementName=graph_viewer, Path=X_Scale, Mode=OneWay}"
                      MaxTimeValue="{Binding ElementName=graph_viewer, Path=_SignalDataViewModel.MaxTimeValue, Mode=OneWay}"
                    />
                  </Grid>

                  <ItemsPresenter/>
                </StackPanel>
              </ScrollViewer>
            <ControlTemplate.Triggers>
              <Trigger Property="IsMouseOver"
                                   Value="True"> …
Run Code Online (Sandbox Code Playgroud)

wpf treeview xaml triggers controltemplate

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

C#以什么顺序搜索命名空间/二进制文件来查找变量名?

我只是好奇这是如何工作的.似乎无法找到很多细节.可能在我的搜索中没有正确处理问题.但基本上,编译器如何解析名称?它以什么顺序搜索C#文件开头的using语句中列出的命名空间?

c# namespaces

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

C#编译器是否知道在两个地方是否进行了相同的计算?

 if ( Math.Pow(functionofY, 3.0) > 0.008856 )
      {
        functionofY = Math.Pow(functionofY, 3);
      }
Run Code Online (Sandbox Code Playgroud)

如果我有这个功能,编译器会只计算一次功率吗?或者它是否通过您的代码并找到重复的计算?我觉得编译器有时是一个神奇的黑盒子.

c#

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