小编JSc*_*rtz的帖子

如何在WPF中动态创建数据网格?

我在XAML中有以下数据网格:

<DataGrid ItemsSource="{Binding View}" AutoGenerateColumns="False" IsReadOnly="True"
          GridLinesVisibility="None" CanUserAddRows="False" CanUserDeleteRows="False" 
          CanUserResizeColumns="False" CanUserResizeRows="False" 
          CanUserReorderColumns="False" >
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="FontWeight" Value="Bold" />
            <Setter Property="FontSize" Value="12" />
        </Style>
    </DataGrid.ColumnHeaderStyle>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Type" Width="200" FontSize="12" 
                            Binding="{Binding Path=Name}" />
        <DataGridTemplateColumn Header="Ingredients" Width="*">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                  <DataGrid ItemsSource="{Binding Ingredients}" 
                            AutoGenerateColumns="False" IsReadOnly="True"
                            GridLinesVisibility="None" CanUserAddRows="False" 
                            CanUserDeleteRows="False" CanUserResizeColumns="False"
                            CanUserResizeRows="False" CanUserReorderColumns="False" >
                        <DataGrid.ColumnHeaderStyle>
                            <Style TargetType="{x:Type DataGridColumnHeader}">
                                <Setter Property="FontWeight" Value="Bold" />
                                <Setter Property="FontSize" Value="12" />
                            </Style>
                        </DataGrid.ColumnHeaderStyle>
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Ingredients" 
                                            Width="*" FontSize="12"
                                            Binding="{Binding Path=IngredientName}"/>
                            <DataGridTextColumn Header="Quantite" Width="*" 
                                          FontSize="12" Binding="{Binding Path=Qty}"/>
                        </DataGrid.Columns> …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf datagrid

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

我们可以使用LINQ在WPF中进行汇总和分组吗?

我具有以下数据结构:列出myOrders

因此,这是基于今天收到的订单的数据列表(如下所示)(因此,如果不同的人多次购买相同的商品,则可以重复)。

Data
{
  string itemName
  double itemQuantiy
  string partName
  double partQuantity
}
Run Code Online (Sandbox Code Playgroud)

例如,填充后的列表如下所示:

  itemName   itemQuantity   partName   partQuantity
  A          1              alpha      5
  A          1              beta       2
  A          1              delta      100
  B          1              alpha      17
  B          1              gamma      2000
  A          2              alpha      10
  A          2              beta       4
  A          2              delta      200
Run Code Online (Sandbox Code Playgroud)

从上表中可以看到,项目A有3个部分(alpha,beta,delta),项目B有两个部分(alpha,gamma),它们各自具有各自的数量,在此示例中,项目A被定购了两次(前3行)是A的1个单位的第一个顺序,A的2个单位的后3行)。

我需要向用户展示此内容,但应按项目分组并且应汇总数量。

最终结果(在屏幕上显示给用户)应如下所示:

  itemName   itemQuantity   partName   partQuantity
  A          3              alpha      15
                            beta       6
                            delta      300
  B          1              alpha      17
                            gamma      2000
Run Code Online (Sandbox Code Playgroud)

可以使用LINQ之类的东西或WPF中的某些东西完成此操作吗?(或您可能建议的其他任何方式-我现在很茫然)。

c# linq wpf

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

将两步LINQ查询转换为单个LET查询?

我目前有以下代码:

var data = /* enumerable containing rows in your table */;
var part = "X";
var items = new HashSet<int>(data
    .Where(x => x.PartName == part)
    .Select(x => x.ItemName));
var query = data.Where(x => items.Contains(x.ItemName));
Run Code Online (Sandbox Code Playgroud)

items查找具有特定数据的数据中的所有项目PartName.

query 返回该项的数据中的所有记录.

我需要将它转换为单个LET语句(或其他东西),我可以将其嵌入另一个更大的LINQ查询中.

例如,如果我的数据如下(记录):

ItemName PartName
1        A
1        B
2        A
3        C
Run Code Online (Sandbox Code Playgroud)

我正在寻找部分为"A"的物品,我需要最终结果:

1        A
1        B
2        A
Run Code Online (Sandbox Code Playgroud)

一个建议是做这样的事情:

let a = data.GroupBy(x => x.ItemName)
            .Where(g => g.Any(x => x.Partname == part))
            .Select(g => new
                {
                    ItemName = …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

如何在Haskell中表达以​​下if-else if-else语句?

我试图在Haskell中复制以下要求/代码

伪代码(实际评估要复杂得多):

if (x == 1)
   doX()
else if (y == 1)
   doY()
else if (z == 1)
   doZ()
else
   doSomethingElse()
Run Code Online (Sandbox Code Playgroud)

现在我把它作为每个的WHEN语句,但这并没有给我一个ELSE,所以我有

when (x == 1) $ do doX
when (y == 1) $ do doY
when (z == 1) $ do doZ
Run Code Online (Sandbox Code Playgroud)

但那我该如何管理我的其他人呢?

haskell

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

如何根据列的值从列表中删除行

我有一个我创建的数据类型(SlcCustomer)列表:

[SlcCustomer {slcCustName = "Xena Gamble", slcCustID = 1, slcCustAge = 27},SlcCustomer {slcCustName = "Brooke Castaneda", slcCustID = 2, slcCustAge = 80}]
Run Code Online (Sandbox Code Playgroud)

我在结果上使用PRINT函数得到了这个输出.

现在我需要FILTER这个,我想删除任何有slcCustAge <= 20的行...有没有办法使用内置的过滤器类型的东西,并以某种方式检查?

haskell

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

如何定义一个可以像堆栈一样推送和弹出的LIST?

我的代码中定义了以下TYPE:

type Pos = (Int, Int)      -- position in 2 dimensions
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含Pos元素的列表(或堆栈或其他).

我需要能够将一个Pos元素添加(推送)到列表的头部(当在该位置进行更改时),并在需要时从列表的头部拉出(弹出)一个Pos(以重放最后一个)更改).

我对Haskell真的很陌生,那么最好的方法是什么?我应该只使用一个列表并与HEAD一起玩吗?但是如何从头部"弹出"中"移除",或者是否有我可以使用的堆栈(对我来说听起来像堆栈类型的东西) - 如果是这样的话我该如何使用"Pos"类型的元素创建它?

haskell

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

如果 C# 找不到 Typeof?

在尝试在 WPF C# 中设置 datagrid 单元格的属性时,我在堆栈上找到了一篇文章,它提供了我需要的代码(希望如此) - 奇怪的是,我无法编译它,因为我似乎无法找到如何正确声明Typeof。

代码:

        var datagrid = new DataGrid();
        Style columnStyle = new Style(Typeof(TextBlock));

        datagrid.Columns.Add(new DataGridTextColumn()
        {
            ElementStyle = columnStyle
        }
Run Code Online (Sandbox Code Playgroud)

原始代码发布:
通过后台代码设置DataGridTextColumn.ElementStyle

我想要做的是模仿以下内容以启用文本换行:

                    <DataGridTextColumn.ElementStyle>
                        <Style>
                            <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
                        </Style>
Run Code Online (Sandbox Code Playgroud)

问题是在声明我的样式时 Typeof,编译器会出现以下错误:

名称“Typeof”在当前上下文中不存在
“System.Windows.Controls.TextBlock”是“类型”,但用作“变量”

我做了一些搜索以查看 C# 中定义的 Typeof 但实际上找不到任何东西......有人有任何线索吗?

c# wpf datagrid

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

泡菜EOFError:从套接字接收时超出输入范围

我正在为学校项目(并非旨在用于现实世界)运行一个非常简单的python(3.x)客户端-服务器程序(均在本地PC上),该程序只是来回发送消息(例如查看客户,添加客户,删除客户等...真正的基础)。

有时数据可以是多个记录,这些记录我已经存储为namedTuples(这很有意义),然后沿着使用Pickle进行传输的道路走了。

因此,例如在客户端上,我这样做:

s.send(message.encode('utf-8'))
pickledResponse = s.recv(4096);
response = pickle.loads(pickledResponse)
Run Code Online (Sandbox Code Playgroud)

现在,我经常遇到以下错误:

response = pickle.loads(pickledResponse)
EOFError: Ran out of input
Run Code Online (Sandbox Code Playgroud)

我担心这与我的套接字(TCP)传输有关,也许不知何故我没有及时获取我的pickle.loads的所有数据-有意义吗?如果不是这样的话,我真的迷失了为什么会如此不一致地发生。

但是,即使我是对的,我也不知道如何(快速)解决它,我正在考虑丢下泡菜,只使用琴弦(但这难道不会遭受同样的命运)吗?有没有人有什么建议?

确实,我的信息非常基础-通常只是一个命令和一些小数据,例如“ 1 = John”,这意味着命令(1)是FIND命令,然后是“ John”,它返回记录(名称,年龄等)。 )(作为namedTuple,但老实说这不是强制性的)。

寻找快速修复的任何建议或帮助将不胜感激...

python sockets pickle

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

你能在WHEN条款中进行多次评估吗?

你能在WHEN条款中进行多次评估吗?

例如,有没有办法做这样的事情:

when (x == "Open" and y == "Ready") $ do...
Run Code Online (Sandbox Code Playgroud)

我可以得到一个单一的条件,但如果我需要两者都是真的怎么办?

haskell

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

标签 统计

c# ×4

haskell ×4

wpf ×3

datagrid ×2

linq ×2

data-binding ×1

pickle ×1

python ×1

sockets ×1