javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

绑定数据网格列可见性MVVM

.Net 3.5

我知道这些列不会继承datacontext,通过阅读其他文章,我认为这是可行的:

Visibility="{Binding RelativeSource={x:Static RelativeSource.Self},
                     Path=(FrameworkElement.DataContext).IsColumnNameVisible,
                     Converter={StaticResource boolToVisConverter}}"

但是,当然不是。输出窗口没有抱怨,似乎是我找到的资源,但是viewmodel属性是新的。

这是整个DG:

<tk:DataGrid                                        
            VirtualizingStackPanel.IsVirtualizing="False"                                        
            Grid.Column="0"
            AlternationCount="2"
            AreRowDetailsFrozen="True"
            AutoGenerateColumns="False"
            Background="Transparent"
            BorderThickness="0"
            CanUserAddRows="False"
            CanUserReorderColumns="True"
            CanUserResizeRows="False"
            GridLinesVisibility="None"
            ItemsSource="{Binding Employees}"
            SelectionMode="Single"
            ColumnHeaderStyle="{StaticResource columnHeaderStyle}"
            RowHeaderStyle="{StaticResource rowHeaderStyle}"
            CellStyle="{StaticResource cellStyle}"
            RowStyle="{StaticResource rowStyle}" 
            ContextMenu="{StaticResource columnHeaderContextMenu}">
    <tk:DataGrid.Resources>
        <ContextMenu x:Key="columnHeaderContextMenu" ItemsSource="{Binding ColumnHeaderContextMenuItems}" />
        <Style TargetType="{x:Type ScrollBar}">
            <Setter Property="Background" Value="Transparent"/>
        </Style>                                    
        <Style TargetType="{x:Type tk:DataGridColumnHeader}">
            <Setter Property="Background" Value="Transparent"/>
        </Style>
    </tk:DataGrid.Resources>
    <tk:DataGrid.Triggers>
        <EventTrigger RoutedEvent="tk:DataGridRow.MouseDoubleClick">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource showDetailGrid}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </tk:DataGrid.Triggers>
    <tk:DataGrid.Columns>
        <tk:DataGridTextColumn IsReadOnly="True" Header="test" Binding="{Binding Name, Mode=OneWay}" Visibility="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(FrameworkElement.DataContext).IsColumnNameVisible, Converter={StaticResource boolToVisConverter}}"  />
    </tk:DataGrid.Columns>
</tk:DataGrid>

我已经阅读了几乎所有解决此问题的方法,但是没有任何效果。

trans by 2020-02-08T09:25:35Z

C#-使用Foreach克劳斯的Lambda表达式

可能重复:
为什么IEnumerable接口上没有ForEach扩展方法?

编辑

作为参考,这是eric在评论中引用的博客文章

[http://blogs.msdn.com/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx]

原始物

我想更多的是好奇心,但是我对C#Specification Savants感兴趣。

为什么ForEach()子句无法在IQueryable / IEnumerable结果集上使用(或不可用)...

您必须先将结果转换为ToList()或ToArray()大概C#迭代IEnumerables Vs的方式存在技术限制。 清单...这与IEnumerables / IQuerable集合的延迟执行有关。例如

var userAgentStrings = uasdc.UserAgentStrings
    .Where<UserAgentString>(p => p.DeviceID == 0 && 
                            !p.UserAgentString1.Contains("msie"));
//WORKS            
userAgentStrings.ToList().ForEach(uas => ProcessUserAgentString(uas));         

//WORKS
Array.ForEach(userAgentStrings.ToArray(), uas => ProcessUserAgentString(uas));

//Doesn't WORK
userAgentStrings.ForEach(uas => ProcessUserAgentString(uas));
trans by 2020-02-02T17:24:06Z

c#-将参数添加到按钮单击事件

我有一个这样的WPF按钮:

<Button Click="button1_Click" Height="23" Margin="0,0,5,0" Name="button1" Width="75">Initiate</Button>

我想将{Binding Code}作为参数传递给button1_click处理程序。
我该怎么办?

免责声明:WPF真的很新

trans by 2020-01-27T09:39:22Z

CodeGo.net>我如何将一个整数转换成其口头表达?

是否存在可用于将整数转换为语言表示形式的库或类/函数?

输入示例:

4,567,788`

输出示例:

四百万,五十六万七千,七百八十八

trans by 2020-01-26T05:32:16Z

.net-C#中的生成数字列表

我经常需要生成数字列表。 间隔可以有很多数字。 我有这样的方法:

public static int[] GetNumbers(int start, int end)
{
    List<int> list = new List<int>();
    for (int i = start; i < end; i++)
        list.Add(i);
    return list.ToArray();
}

有没有办法使它更简单,更快?

我正在使用.NET 3.5

trans by 2020-01-24T13:33:30Z

c#-获取.NET程序集的日期

这个问题已经在这里有了答案:

  • 我如何获得装配的上次修改日期?                                     6个答案

如何从当前.NET程序集中检索创建日期?

我想添加一些非常简单的功能,使我的应用在主程序集的生成日期一周后停止工作。 我已经编写了在给定日期后杀死我的应用程序的代码。 我只需要以编程方式从程序集中检索创建日期。

trans by 2020-01-23T17:08:35Z

HTTP错误500.22-内部服务器错误(检测到ASP.NET设置不适用于集成托管管道模式。)

查看应用程序时收到此错误。

HTTP错误500.22-内部服务器错误(检测到ASP.NET设置不适用于集成托管管道模式。)

已安装.Net Framework 2.0、3.5和4,并且我正在使用SQL2008。有人可以告诉我该错误的解决方案是什么?

trans by 2020-01-18T03:03:06Z

CodeGo.net>使用什么:变量或对象名称类型?

这个问题已经在这里有了答案:

  • 在C#中使用var关键字                                     86个回答

这是一个在编程时我总是想知道的问题:编写代码时该使用什么:

var myFiles = Directory.GetFiles(fullPath);

要么

string[] myFiles = Directory.GetFiles(fullPath);

var是新的,并且是隐式类型的局部变量,因此我们只能在本地使用,并且具有诸如不能为null等规则,但是我想知道我们是否可以“正常”使用它吗?

“通常”部分说的不是使用匿名类型,对象和集合初始化器以及查询表达式,这是使用var匿名对象的意图,所以我的意思是……就像上面的例子一样。

你怎么看?

trans by 2020-01-08T19:29:40Z

c#-NUnit Assert.AreEqual DateTime容差

我想知道是否有人找到了一个很好的解决方案:

在我们的单元测试中; 我们通常使用.ToShortDateString()来验证我们的结果。 一切都很好。 直到我们开始尝试在DateTime属性上使用它。

尽管时间非常相似,但有时会相差毫秒,这会导致测试失败。 在我们的应用程序中; 只要它们精确到秒; 对我们来说足够了。

有没有人找到在这种情况下以某种方式实现公差的好方法? 通常,我们的解决方法是将其拆分为2个单独的语句。 一个检查.ToShortDateString(),另一个检查.ToShortTimeString(),但我认为这看起来很草率。

trans by 2019-12-31T08:03:41Z

c#-从相对路径获取绝对URL(重构方法)

我真的很惊讶,没有本机.NET方法可以从相对URL中获取绝对URL。 我知道这个问题已经讨论了很多次,但是从来没有遇到过一种令人满意的方法可以很好地处理这一问题。 您可以帮助微调以下方法吗?

我认为我所需要的只是自动选择协议,而不是对其进行硬编码(http / https)。 我还缺少什么(演出,演奏等)?

public static string GetAbsoluteUrl(string url)
    {
        //VALIDATE INPUT FOR ALREADY ABSOLUTE URL
        if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) 
           || url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
        { 
            return url;
        }

        //GET PAGE REFERENCE FOR CONTEXT PROCESSING
        Page page = HttpContext.Current.Handler as Page;

        //RESOLVE PATH FOR APPLICATION BEFORE PROCESSING
        if (url.StartsWith("~/"))
        {
            url = page.ResolveUrl(url);
        }

        //BUILD AND RETURN ABSOLUTE URL
        return "http://" + page.Request.ServerVariables["SERVER_NAME"] + "/" 
                         + url.TrimStart('/');
    }
trans by 2019-11-12T10:53:55Z

c#-在.NET 4下someString.IndexOf(someString)返回1而不是0

我们最近将所有项目从.NET 3.5升级到.NET4。关于IndexOf(),我遇到了一个非常奇怪的问题。

我的代码显然做了些微的不同,但是在研究此问题的过程中,我发现在一个字符串上调用IndexOf()本身返回1而不是0。换一种说法:

string text = "\xAD\x2D";          // problem happens with "­-dely N.China", too;
int index = text.IndexOf(text);    // see update note below.

给我一个索引,而不是0。关于此问题,需要注意以下几点:

  • 问题似乎与这些连字符有关(第一个字符是Unicode软连字符,第二个字符是常规连字符)。

  • 我已经仔细检查过,这在.NET 3.5中不会发生,但在.NET 4中会发生。

  • 更改IndexOf()进行顺序比较可解决此问题,因此出于某些原因,默认字符IndexOf会忽略第一个字符。

有谁知道为什么会这样吗?

编辑

抱歉,在原始帖子上做了一些填充,然后在其中两次隐藏了破折号。 我已经更新了字符串,只要您将其粘贴到正确的编辑器中,它就应该返回1而不是2的索引。

更新:

将原始问题字符串更改为一个清晰可见的每个实际字符的字符串(使用转义)。 这稍微简化了这个问题。

trans by 2019-11-10T21:22:34Z

首页> C#>如何检测MS-Office的安装版本?

有谁知道检测安装哪个版本的Office的最佳方法是什么? 另外,如果安装了多个版本的Office,我想知道它们是什么版本。 如果我能检测到已安装的特定版本的Excel,那么将是一个奖励。

trans by 2019-11-08T11:01:50Z

C#-将一个dll作为嵌入资源嵌入到另一个dll中,然后从我的鳕鱼中调用

我遇到的情况是,我正在创建一个使用另一个第三方DLL的DLL,但我希望能够将第三方DLL构建到我的DLL中,而不是尽可能将它们保持在一起。

这是C#和.NET 3.5。

我要这样做的方式是将第三方DLL存储为嵌入式资源,然后在执行第一个DLL时将其放置在适当的位置。

我最初计划执行此操作的方法是编写代码以将第三方DLL放置在System.Reflection.Assembly.GetExecutingAssembly().Location.ToString()指定的位置减去最后的/nameOfMyAssembly.dll。我可以在此位置成功保存第三方.DLL(最终是

C:\ Documents and Settings \ myUserName \ Local Settings \ Application   数据\程序集\ dl3 \ KXPPAX6Y.ZCY \ A1MZ1499.1TR \ e0115d44 \ 91bb86eb_fe18c901

),但是当我到达需要此DLL的代码部分时,找不到它。

有人对我需要做些不同的事情有任何想法吗?

trans by 2019-11-06T01:24:11Z

.net 3.5-LINQ:点表示法与查询表达式

我现在开始一般使用LINQ(到目前为止,对于XML和toSQL)。 我已经看到,有时有两种或多种方法可以达到相同的结果。 以这个简单的例子为例,据我了解,两者返回的结果完全相同:

SomeDataContext dc = new SomeDataContext();

var queue = from q in dc.SomeTable
        where q.SomeDate <= DateTime.Now && q.Locked != true
        orderby (q.Priority, q.TimeCreated)
        select q;

var queue2 = dc.SomeTable
        .Where( q => q.SomeDate <= DateTime.Now && q.Locked != true )
        .OrderBy(q => q.Priority)
        .ThenBy(q => q.TimeCreated);

这个想法是有两种表达同一事物的方法。 我知道第一种方法有一些局限性,并且“点表示法”更完整,但是除此之外,还有其他优点吗?

trans by 2019-11-05T21:55:23Z

.NET 2.0运行时上的LINQ

启用LINQ的应用程序可以在仅安装.NET 2.0运行时的计算机上运行吗?

从理论上讲,LINQ只是语法糖,而且生成的IL代码应与.NET 2.0中的外观相同。

如何在不使用.NET 3.5库的情况下编写LINQ? 它可以在.NET 2.0上运行吗?

trans by 2019-11-05T08:02:38Z

.net 3.5-在C#中使用扩展方法时出错

我遇到一个问题,使我认为3.0框架中存在错误。 当我尝试使用扩展方法时,出现以下错误:

Missing compiler required member
'System.Runtime.CompilerServices.ExtensionAttribute..ctor'

使用此简单代码时:

public static class StringUtils {
    static void TestExtension(this String targetString) {

    }
}

使该编译错误消失的唯一方法是添加以下代码:

namespace System.Runtime.CompilerServices {
    public class ExtensionAttribute : Attribute { }
}

自从我使用扩展方法已经有几个月了,但是我很确定我不必这样做。 还有其他人遇到这个问题吗?

trans by 2019-10-15T19:53:09Z

转换DataRowCollection到IEnumerable <T>

我想在.NET 3.5中执行类似的操作。 最快的方法是什么?

IEnumerable<DataRow> collection = 
    TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;
trans by 2019-10-15T19:21:03Z

.net 3.5-如何在WPF中“单击”控件?

我有一个订单输入表单,其中包含TextBlock和订单项列表。 我有我的项目模板,每个我的项目中的值是ComboBox

现在,我的表单还可以创建采购订单之外的贷项凭单,但是当我创建贷项凭单时,我想在列表框上输入“贷项凭单”,但是TextBlock覆盖了ComboBox中的两个 订单项。 我想将点击事件通过TextBlock传递给ComboBoxes,但是我不确定该怎么做。

这就是我所拥有的((也许我完全犯错了,我是WPF的菜鸟)

<ListBox SelectionMode="Single" Grid.Row="2" 
         ItemsSource="{Binding Path=LineItems}" HorizontalContentAlignment="Stretch" 
         IsSynchronizedWithCurrentItem="True" Background="#66FFFFFF">
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Setter Property="Background" Value="WhiteSmoke"/>
            <Setter Property="BorderThickness" Value="1" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsPartBackOrder}" Value="True">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>                       
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
        <DataTemplate DataType="{x:Type Entities:SalesOrderLineItem}" >
            <OrderEntry:SalesOrderLineItemCreate DataContext="{Binding}" DeleteSalesOrderLineItem="DeleteSalesOrderLineItem" Margin="0,3,3,0" >
                <OrderEntry:SalesOrderLineItemCreate.Resources>
                    <Style TargetType="{x:Type OrderEntry:SalesOrderLineItemCreate}">
                        <Style.Triggers>
                            <DataTrigger 
                                    Binding="{Binding RelativeSource=
                                      {
                                         RelativeSource 
                                         Mode=FindAncestor, 
                                         AncestorType={x:Type ListBoxItem}
                                      }, 
                                      Path=IsSelected
                                     }" Value="True">
                                <Setter Property="Background" Value="LightBlue" />
                                <Setter Property="Foreground" Value="Black" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </OrderEntry:SalesOrderLineItemCreate.Resources>
            </OrderEntry:SalesOrderLineItemCreate>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

<TextBlock Grid.Row="2" 
           Text="Credit Memo" 
           HorizontalAlignment="Center"
           VerticalAlignment="Center"
           FontSize="48" Height="Auto"
           FontStyle="Italic"
           Foreground="Red"
           Opacity=".25">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=OrderType}" Value="CR">
                    <Setter Property="Visibility" Value="Visible" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=OrderType}" Value="CU">
                    <Setter Property="Visibility" Value="Hidden" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
trans by 2019-10-11T02:19:45Z

c# - 使用Windows和.NET进行Memcached

有没有人已经在Windows环境中实现memcached用于生产?因为我读过许多博客,所以不建议在Windows中运行memcached,尤其是生产用途,例如在windows上运行memcached。

还有一件事,哪个memcached客户端很适合用c#和.net 3.5?我找到了许多替代品,如Memcached Providers @ Codeplex,Beitmemcached和memcached provider @ Sourceforge

trans by 2019-09-16T03:15:50Z

.net - 创建新的GUI时,WPF是Windows Forms的首选吗?

Windows窗体的大多数限制和技巧对大多数程序员来说都很常见。 但是从.NET 3.0开始,还有WPF可用,Windows Presentation Foundation。 据说你可以用它来使“性感应用程序”变得更加容易,并且使用.NET 3.5 SP1可以很快地提高执行速度。

但另一方面,很多事情与WPF有所不同。 我不会说这更难,但你必须从头开始学习“一切”。

我的问题:当你必须创建一个新的GUI并且项目没有时间压力时,是否值得花费额外的时间?

trans by 2019-09-15T10:30:32Z

上一页 1 2 3 4 下一页 共4页