小编Met*_*urf的帖子

按类型过滤Visual Studio(或ReSharper)Intellisense

有没有办法按类型过滤Visual Studio Intellisense?

示例:当我使用诸如Infragistics的XamDataGrid之类的控件时,看似无穷无尽的字段,属性,事件和方法.我希望能够按类型过滤智能感知,即只显示事件.

我在JetBrains网站上找到了这些建议,但没有解决方案:

resharper intellisense visual-studio-2008

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

设置get only属性值的首选方法:构造函数与支持字段

编辑:虽然我接受了大卫的回答,但乔恩的回答也应该被考虑.

设置只读(仅获取?)属性的值首选哪种方法:使用支持字段还是使用构造函数?假设设计是针对属性而不是字段(将来,可能会有更新要求属性具有可以排除使用字段的setter).

鉴于以下简单示例,首选哪种方法?如果一个优先于另一个,为什么?

选项1(支持领域):

class SomeObject
{
    // logic
}

class Foo
{
    private SomeObject _myObject;
    public SomeObject MyObject
    {
        get
        {
            if( _myObject == null )
            {
                _myObject = new SomeObject();
            }
            return _myObject;
        }
    }

    public Foo()
    {
        // logic
    }
}
Run Code Online (Sandbox Code Playgroud)

选项2(构造函数):

class SomeObject
{
    // logic
}

class Foo
{
    public SomeObject MyObject { get; private set; }

    public Foo()
    {
        MyObject = new SomeObject();
        // logic 
    }
}
Run Code Online (Sandbox Code Playgroud)

c# class-design properties

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

使用ActiveX获取用户名

我正在使用经典ASP编写的旧内部网站点.我正在尝试检索他们登录到他们机器的用户名.每个用户都登录到AD,但我无法从服务器检索它,因为Intranet站点不使用AD.

我被告知我可以使用ActiveX来检索它.我做了一些研究,我发现了以下代码(javascript):

var wshshell = new ActiveXObject("WScript.shell");
var username = wshshell.ExpandEnvironmentalStrings("%username%");
Run Code Online (Sandbox Code Playgroud)

目前我正在使用IE8,并且在第一行上出现"自动化服务器无法创建对象"错误.

1)为什么我收到错误的任何想法?

2)鉴于我的局限,是否有更好的方法可以做到这一点?

javascript activex asp-classic

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

关于在不使用MVVM或类似程序的情况下开发WPF应用程序的建议

我们使用WPF/Prism(复合应用程序库)构建了下一版本的内部胖客户端应用程序.当我们与客户差不多完成时,我们的团队被置于新的管理层之后不久:

  1. 然后我们被指示放弃Prism框架以保持简单.这包括不使用任何类型的控制反转.

  2. 我们被指示在不使用MVVM或类似的情况下构建WPF应用程序; 以及更传统的WinForm应用程序.这个想法是,如果开发人员在Visual Studio的设计器视图中看到一个控件,那么他应该能够点击控件并确切地看到它正在做什么,而不必遍历视图模型(或类似).

  3. 我们现在的任务是使用一个主窗口构建WPF应用程序,使用框架控件来包含内容,并在框架外使用功能区作为菜单项.我们提供使用帧控制的原因:

    一个.我们将在Frame中显示一个带有Page(不是用户控件)的视图,然后在Frame中加载页面.

    湾 当要在框架中显示新视图时,将关闭/处置当前视图(页面),并且新视图(页面)将在框架中占据一席之地.

    C.当开发人员在设计视图中查看页面时,他将能够单击任何控件并查看正在完成的操作.

鉴于上述1和2的限制,我们想提出另一种构建应用程序的方法:

  1. 可以作为使用"框架方法"(上面第3项)的替代方案,但仍提供相同类型的功能.

  2. 不使用MVVM(参见上面的#1和#2).

如果我们已经给出了方向,我们可以提出任何替代方案的建议吗?我要求将答复保留在专业级别,并提前感谢您.

wpf recommendation-engine

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

检查listview中复选框的值

我有一个带有复选框字段的Lis​​tView,它可以动态获取id.

我还有一个按钮,当按下时需要检查是否有任何checbox已被检查,但我不知道如何完成.

关于如何完成这项任务的任何想法?

谢谢

这是我的代码:

<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id"  
    DataSourceID="EntityDataSource1" EnableModelValidation="True"> 

    <ItemTemplate>
        <tr>
            <td class="firstcol">
                <input id='Checkbox<%# Eval("Id") %>' type="checkbox" />
            </td>
        </tr>
    </ItemTemplate>

    <LayoutTemplate>
       <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <th width="50" scope="col" class="firstcol">

                </th>
            </tr>
            <tr ID="itemPlaceholder" runat="server"></tr>
        </table>
        <asp:Button ID="btnDownload" runat="server" Text="Download" Height="26px" 
    onclick="btnDownload_Click" />
    </LayoutTemplate>
</asp:ListView>



protected void btnDownload_Click(object sender, EventArgs e)
{
   ???????
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net listview

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

TaskFactory.Tasks中BlockingCollection.GetConsumingEnumerable()集合的Parallel.ForEach和foreach循环

我已经尝试了这两个循环,并注意到即使Task的Action委托中的常规foreach循环应该并行执行,它也不会并行处理元素.但是,如果我用Parallel.ForEach替换它,我看到数据正在跨多个线程并行处理.

代码1:

Task loadingTask1 = Factory.StartNew(() =>
        {
            foreach (MyOneClass dg in Queue.GetConsumingEnumerable())
            {

                MyOtherClass vl = new MyOtherClass();
                vl.Id = dg.Id;
                vl.PerformTimeConsumingAction();

                OutputQueue.Add(vl);
            }
        });
Run Code Online (Sandbox Code Playgroud)

代码2:

Task loadingTask2 = Factory.StartNew(() =>
        {
            Parallel.ForEach(Queue.GetConsumingEnumerable(), (dg) =>
            {

                MyOtherClass vl = new MyOtherClass();
                vl.Id = dg.Id;
                vl.PerformTimeConsumingAction();

                OutputQueue.Add(vl);
            });
        });
Run Code Online (Sandbox Code Playgroud)

在每次迭代时使用Console.Write语句运行的代码1似乎等待上一个循环完成,直到它抓住下一个循环,但代码2确实并行处理多个元素.

我是否正确理解Task.Action中的常规foreach?我认为.NET将启动尽可能多的任务线程作为加载保证,并且每个迭代的foreach将被并行处理.

我也尝试将PLINQ结果传递给上述代码和观察者相同的行为:常规foreach似乎等待上一次迭代完成以启动下一个代码,即使我已经使用了.AsParallel().WithExecutionMode(ParallelExecutionMode.ForceParallelism)指令.

任何见解都将受到高度赞赏.我知道OrderingPartitioner类,可能会尝试使用它

c# parallel-processing multithreading task-parallel-library

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

Caliburn.Micro:使用WPF使用IWindowManager创建无边框窗口

使用IWindowManagerCaliburn.Micro,是有可能创建一个使用一个无国界的窗口ShowWindow的方法?

在这种情况下,Window的内容是从UserControl生成的.Caliburn.Micro将创建一个Window来托管UserControl.

wpf caliburn.micro

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

在Pure XAML中创建WPF水印

这是用于登录屏幕上的TextBox控件,其中TextBox包含用户名.我希望TextBox以下列方式执行:

  • 当内容为空时,内容应设置为"用户名".

  • 单击TextBox时,我希望将内容设置为""即; 没有(除非内容已经由用户编辑).

这是一个非常标准的功能,就像这个wordpress登录(在页面顶部).我不敢想到比这更好的例子我害怕:)

所以,无论如何,我已经使用ViewModel做了这个并且它运行良好,但是我想知道这是否可以完全来自XAML端.没有业务逻辑,所以我认为没有VM就更好.

c# wpf xaml

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

WPF:绑定更改时如何触发EventTrigger(或动画)?

我们有一个简单的动画,在检查和取消选中ToggleButton时运行(展开ListView的高度,然后折叠ListView的高度).如何在以下XAML中<Storyboard x:Key="CommentsCollapse">的GridConnge绑定更改时触发EventTrigger(或Animation)x:Name="DetailsGrid"

换句话说,每当"DetailsGrid"的Binding更改时,我们都希望触发"CommentsCollapse"StoryBoard以确保ListView返回到其折叠状态.

<Page
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Width="800"
   Height="400">
   <Page.Resources>
      <Storyboard x:Key="CommentsExpand">
         <DoubleAnimationUsingKeyFrames
            BeginTime="00:00:00"
            Storyboard.TargetName="CommentsListView"
            Storyboard.TargetProperty="(FrameworkElement.Height)">
            <SplineDoubleKeyFrame KeyTime="00:00:00.200" Value="300"/>
         </DoubleAnimationUsingKeyFrames>
      </Storyboard>
      <Storyboard x:Key="CommentsCollapse">
         <DoubleAnimationUsingKeyFrames
            BeginTime="00:00:00"
            Storyboard.TargetName="CommentsListView"
            Storyboard.TargetProperty="(FrameworkElement.Height)">
            <SplineDoubleKeyFrame KeyTime="00:00:00.200" Value="75"/>
         </DoubleAnimationUsingKeyFrames>
      </Storyboard>
   </Page.Resources>
   <Page.Triggers>
      <EventTrigger RoutedEvent="ToggleButton.Checked" SourceName="CommentsToggleButton">
         <BeginStoryboard Storyboard="{StaticResource CommentsExpand}"/>
      </EventTrigger>
      <EventTrigger RoutedEvent="ToggleButton.Unchecked" SourceName="CommentsToggleButton">
         <BeginStoryboard Storyboard="{StaticResource CommentsCollapse}"/>
      </EventTrigger>
   </Page.Triggers>
   <Grid DataContext="{Binding Path=CurrentTask.Workflow.Invoice}" x:Name="DetailsGrid">
      <StackPanel Orientation="Horizontal">
         <Canvas Width="428">
            <GroupBox Width="422" Margin="5,0,0,0">
               <GroupBox.Header>
                  <StackPanel Orientation="Horizontal">
                     <ToggleButton
                        x:Name="CommentsToggleButton"
                        Width="20"
                        Height="10"
                        Margin="5,0,0,0">
                        <ToggleButton.Content>
                           <Rectangle
                              Width="5"
                              Height="5"
                              Fill="Red"/>
                        </ToggleButton.Content>
                     </ToggleButton>
                     <TextBlock Foreground="Blue" …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf eventtrigger storyboard

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

List <string []>显示列表值

我有生成List<string[]>变量的代码,但无法弄清楚如何使其正确显示在文本框中.

List<string[]> test = parseCSV();
for (int i = 0;  i < test.Count; i++)
{
  Console.WriteLine("i = {0}",i);
  Console.WriteLine("test[i] = {0}", test[i]);
  nameList.Text = test[i].ToString() + "\n" + nameList.Text;
}
Run Code Online (Sandbox Code Playgroud)

当我输出test[i]到控制台时,它正确显示字符串信息,但当我输出test[i]到文本框时,我得到:

System.String[]
System.String[]
System.String[]
System.String[]
System.String[]
System.String[]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

c# winforms

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