小编Nut*_*uts的帖子

带有两个键和一个值的.NET字典

是否有可用的字典.NET可以容纳2个键和一个值.喜欢

Dictionary(Of TKey, Of TKey, TValue)
Run Code Online (Sandbox Code Playgroud)

我需要存储两个键,并且在某些时候通过键1来查看项目,而在其他时候通过键2来查看项目.

我目前的解决方案是维护两个词典

Dictionary<string, long> Dict1 = new Dictionary<string, long>();
Dictionary<long, long> Dict2 = new Dictionary<long, long>();
Run Code Online (Sandbox Code Playgroud)

当需要添加项目时,我会将其添加到两个词典中.

Dict1.Add("abc", 111);
Dict2.Add(345, 111);
Run Code Online (Sandbox Code Playgroud)

然后我将从这些字典中的任何一个查找项目,具体取决于我需要查看哪个键.

我在删除或更新项目时也会这样做.

我已经考虑了复合键,但我不知道如何设置它,我不想失去任何搜索项目的速度.

是否有一些解决方案可以.NET拥有可以容纳多个密钥的字典?

.net c# dictionary

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

SUMIF与OR标准

如何SUMIF在Excel单元格中使用必须在给定范围内求和的公式,而不是找到单个值,它应该找到多个值?

为了找到单个值,我使用:

=SUMIF(A4:A100;"1";B4:B100)
Run Code Online (Sandbox Code Playgroud)

现在我需要总结列是否A成立,1或者2像:

=SUMIF(A4:A100;"1" OR "2";B4:B100)
Run Code Online (Sandbox Code Playgroud)

单元格A1将标准作为文本保留,这里就是1;2.

它应该返回相同

=SUMIF(A4:A100;"1";B4:B100) + SUMIF(A4:A100;"2";B4:B100)
Run Code Online (Sandbox Code Playgroud)

但我需要一个可以采用任何数量标准的公式(1,2,3,......或更多).

语法是什么?我不能在这里使用VBA.

excel excel-formula

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

WPF RadioButton/ToggleButton样式

我想模仿一组ToggleButtons的样式,如下图所示.任何时候只能"检查"其中一个按钮.

在此输入图像描述

我的问题与样式有关:

  • 我想在最左边的按钮和最右边的按钮上有圆角,如图中所示,但是如果有一个按钮(如图中所示),则不应该有圆角.有时可能只有两个按钮可以切换.
  • 我需要不同状态的风格:"正常/未选中","鼠标悬停","按下"和"检查"至少.

我正在使用的当前控件是这样完成的:

<StackPanel Orientation="Horizontal" >
    <RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="All" Padding="12,8,12,8" GroupName="View"  />
    <RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Geolocated" Padding="12,8,12,8" GroupName="View" />
    <RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Non Geolocated" Padding="12,8,12,8" GroupName="View" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

在StackPanel资源中,我试图为ToggleButton设置Style,但我很遗憾如何在上图中获得结果.

wpf styles radio-button togglebutton

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

条件不等于时触发

我需要一个StyleWPF下,在多个条件满载时设置几个属性.但是,我的一个条件是类型Not Equal To.我应该如何更改以下Style条件才能成为条件Not Equal To?没有它可以实现IValueConverter吗?

<Style>
    <Style.Triggers>
        <MultiDataTrigger>
             <MultiDataTrigger.Conditions>
                  <!--<Condition 1 here.../>-->
                  <!--<Condition 2 here.../>-->
                  <Condition Binding="{Binding Path=id}" Value="3"/>
             </MultiDataTrigger.Conditions>
             <Setter Property="Background" Value="Red"/>
             <Setter Property="Foreground" Value="Black"/>
         </MultiDataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

我需要以下但这当然不起作用,因为触发器只支持Equal运算符.

<Style>
    <Style.Triggers>
        <MultiDataTrigger>
             <MultiDataTrigger.Conditions>
                  <!--<Condition 1 here.../>-->
                  <!--<Condition 2 here.../>-->
                  <Condition Binding="{Binding Path=id}" Value<>"3"/>
             </MultiDataTrigger.Conditions>
             <Setter Property="Background" Value="Red"/>
             <Setter Property="Foreground" Value="Black"/>
         </MultiDataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

wpf styles

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

WPF StackPanel内容垂直对齐

有没有办法XAML说我想垂直对齐水平方向内的所有组件StackPanel

我通过以下方式实现了预期的结果XAML:

<StackPanel Orientation="Horizontal">
     <TextBlock VerticalAlignment="Center"/>
     <Button VerticalAlignment="Center"/>
     <TextBox VerticalAlignment="Center"/>
     <Button VerticalAlignment="Center"/>
     <TextBlock VerticalAlignment="Center"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

但我需要分别重复VerticalAlignment="Center"每个控件.

有没有办法在StackPanel下面的级别声明?

<StackPanel Orientation="Horizontal" VERTICALCONTENTALIGNMENT="Center">
     <TextBlock/>
     <Button/>
     <TextBox/>
     <Button/>
     <TextBlock/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

wpf xaml alignment stackpanel

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

WPF应用和ClickOnce的试用期

我们正在使用ClickOnce将.NET WPF应用程序部署到beta测试人员.我们想要设置一个到期日期,之后应用程序不再打开.第一次安装的固定日期或x天都可以.试用后,我们要求用户从他们的计算机上取消应用程序.如果他们不这样做,我们希望应用程序不再打开.

具体要求:

  1. 无法通过重新安装或任何其他方式重置时间
  2. 应用程序也可以脱机工作,无需访问Internet,因此每次运行应用程序时检查Web服务器都不是最佳解决方案
  3. 对应用程序的后续更新不会影响到期日期
  4. 我们希望能够通过发送新的激活码或类似用户的任何时间延长试用期

我正在寻找是否有一些现成的解决方案(非常常见),至少有一些基本机制可以开始工作.

.net wpf clickonce trial

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

在设计时确定WPF控件的DataContext

如何DataContextWPF应用程序中的设计时确定特定控件?

DataContext可能是XAML在代码中专门设置,继承或设置的,有时在设计时很难弄清楚绑定所指的类.

我通常尝试找到的DataContext类是在VS中搜索绑定名称.例如,我看到绑定就像

ItemSource = {Binding Items}
Run Code Online (Sandbox Code Playgroud)

...我将搜索文本"Items"以便进入课堂,但VS有时无法找到搜索到的文本(我在解决方案中有几个项目).

c# wpf xaml mvvm

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

通过拖放 (WPF) 显示提示文本

当拖动的对象位于允许的放置区域时如何显示文本/提示?

除了显示如下所示的 DragDropEffect 之外,我想显示一个小的提示文本,如“将项目拖放到此处以将其添加到列表”。

Private Sub grid_DragEnter(sender As System.Object, e As System.Windows.DragEventArgs)
    If e.Data.GetDataPresent(GetType(List(Of myObject))) Then
        e.Effects = DragDropEffects.Move
    Else
        e.Effects = DragDropEffects.None
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

.net vb.net wpf drag-and-drop hint

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

具有时态数据库的实体框架

考虑从当前数据库(仅存储在当前时间被认为是真实的事实)移动到时间数据库(可以支持处理涉及时间的数据).

我目前使用Entity Framework与数据库进行通信,但是将后续数据库作为后端继续使用Entity Framework是否容易?我没有从Web上找到很多针对此类数据库运行查询的示例.

.net entity-framework temporal-database

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

WPF样式设置器中的多个运行元素

是否有可能在XAML定义多Run一个内部的Style制定者?

以下两个已Run定义并失败:

物业'价值'不止一次设定.

<TextBlock>
    <TextBlock.Style>
         <Style TargetType="{x:Type TextBlock}">
              <Setter Property="Text">
                   <Setter.Value>
                       <Run Text="{Binding SelectedItem.iso}"/>
                       <Run Text="{Binding SelectedItem.value}"/>
                  </Setter.Value>
              </Setter>
             <Style.Triggers>
                 <DataTrigger Binding="{Binding SelectedItem.type}" Value={x:Null}">
                      <Setter Property="Text" Value="No value" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

这可以修复,同时保留多个的使用Run

wpf styles textblock

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