问题列表 - 第43733页

WPF ListBox的组面板

我有一个列表框,使用GroupStyle对项目进行分组.我想在stackpanel的底部添加一个控件来保存所有组.此附加控件需要是滚动内容的一部分,以便用户滚动到列表的底部以查看控件.如果我使用的是没有组的列表框,则通过修改ListBox模板可以轻松完成此任务.但是,对于分组的项目,ListBox模板似乎仅适用于每个组.我可以修改GroupStyle.Panel,但这不允许我向该面板添加项目.

<ListBox>
<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel/>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.GroupStyle>
    <GroupStyle>
         <GroupStyle.Panel>
             <ItemsPanelTemplate>
                 <VirtualizingStackPanel/>  **<----- I would like to add a control to this stackpanel**
             </ItemsPanelTemplate>
         </GroupStyle.Panel>
        <GroupStyle.ContainerStyle>
            <Style TargetType="{x:Type GroupItem}">
                <Setter Property="Template">
                     <Setter.Value>
                         <ControlTemplate TargetType="{x:Type GroupItem}">
                              <Grid>
                                  <ItemsPresenter />
                              </Grid>
                         </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </GroupStyle.ContainerStyle>
    </GroupStyle>
</ListBox.GroupStyle>
Run Code Online (Sandbox Code Playgroud)

这应该让我知道我需要做什么:

GroupStyleNeeds

wpf listbox groupstyle itemspaneltemplate

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

c#linkedlist如何获取最后一个元素之前的元素

我尝试在我的Windows窗体应用程序中实现重做撤消.

我建立了一个链表,列表中的每个输入都是一个保存表单中所有元素状态的类.

每次单击"保存"按钮,都会在此列表中插入表单元素的最后一个状态.

当用户点击撤销按钮时,我想获得列表的输入(一个在最后一个之前)并加载它.

我不知道从链表中获取此元素的简单方法是什么?

我的代码看起来像:

 public class SaveState {

          public int comboBox1;
          public int comboBox2;
          ..........
          public SaveState() {
           .......
          }
    }
    LinkedList<SaveState> RedoUndo = new LinkedList<SaveState>();

    # in save function
    var this_state = new SaveState();           
    this_state = getAllState();
    RedoUndo.AddLast(this_state);

    # when click undo
    var cur_state = new SaveState();
    # this lines dont work !!!!!!!!!
    int get = RedoUndo.Count - 1;        
    cur_state = RedoUndo.Find(get);
    setAllState(cur_state);
Run Code Online (Sandbox Code Playgroud)

c# linked-list

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

在C#中的表单之间来回传递参数

我正在创建一个应用程序,用户将单击form1上的按钮,这将导致form2显示.然后,用户将在form2上填写聊天,然后单击将关闭form2的按钮,并将参数发送回form1进行处理.我怎么能在C#中做到这一点?我见过人们使用属性来做这件事,但是这些例子还不够清楚.有人可以给出一些示例代码,告诉我如何传递参数吗?我更喜欢属性方法,但只要它有效,我会把它算作答案.

c# forms parameters

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

在抽象构造函数中访问overriden val时出现NullPointerException

考虑以下(简化)示例:

abstract class Bar[T] {
    val f: PartialFunction[T, T]
    val default: PartialFunction[T, T] = { case x => x }
    val chained = f orElse default
}

class Foo extends Bar[Int] {
    val f: PartialFunction[Int, Int] = { case 1 => 2 }
}
Run Code Online (Sandbox Code Playgroud)

看着它崩溃:

scala> val foo = new Foo
java.lang.NullPointerException
        at Bar.<init>(<console>:8)
        at Foo.<init>(<console>:6)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at RequestResult$.<init>(<console>:9)
        at RequestResult$.<clinit>(<console>)
        at RequestResult$scala_repl_result(<console>)
        ....
Run Code Online (Sandbox Code Playgroud)

但是,如果我们chained输入具体的类:

abstract class Bar[T] {
    val f: PartialFunction[T, T]
    val default: …
Run Code Online (Sandbox Code Playgroud)

scala

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

为什么我在一个案例中获得"扩展函数的缺失参数"而不是另一个案例?

这种情况有效:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (println(_))
Run Code Online (Sandbox Code Playgroud)

然而,这不是:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (throw new Exception(_.toString))
Run Code Online (Sandbox Code Playgroud)

编译以此错误结束:

error: missing parameter type for expanded function ((x$4) => x$4.toString)
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样写它再次编译:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (s => throw new Exception(s.toString))
Run Code Online (Sandbox Code Playgroud)

我相信有合理的解释;)

scala

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

Python和/或Perl VS bash

我通常用Python编写管理脚本,我知道很多用Perl编写它们的代码.我本可以花一些时间来提高我在bash编程方面的技能.但我想知道周围的人是否认为这是一个好主意?

我知道bash是一个很好的技能,市场经常需要它但是......如果我能用Python或Perl来解决那么......真的值得付出努力吗?

作为答案,我正在寻找实际上bash比Perl或Python更好地开发管理脚本的情况.

python bash perl admin

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

检查实时数据源名称继续之前

在继续处理该请求之前,是否可以让CF应用程序检查有效的数据库?

这是因为可能存在数据库服务器可能已关闭或正在升级的情况,因此在发出数据库相关请求时会出现错误.

如果没有与数据库服务器的连接,则可以安全地将用户重定向到安全页面.

或者可以cfcatch工作?

怎么做这个检查?

谢谢.

error-handling coldfusion coldfusion-8 coldfusion-9

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

Java:使来自多个客户端的并发 MySQL 查询同步

我在一家游戏网吧工作,我们这里有一个系统(smartlaunch)可以跟踪游戏许可证。我编写了一个与该系统接口的程序(实际上,它是后端 MySQL 数据库)。该程序旨在在客户端 PC 上运行,并且 (1) 查询数据库以从可用池中选择一个未使用的许可证,然后 (2) 将此许可证标记为客户端 PC 正在使用。

问题是,我有一个并发错误。该程序旨在在多台机器上同时启动,当发生这种情况时,一些机器通常会尝试获取相同的许可证。我认为这是因为步骤 (1) 和 (2) 没有同步,即一个程序确定许可证 #5 可用并选择它,但在它可以将 #5 标记为正在使用之前,另一台 PC 上的另一个程序副本尝试获取相同的许可证。

我试图通过使用事务和表锁定来解决这个问题,但它似乎没有任何区别 - 我这样做对吗?下面是有问题的代码:

    public LicenseKey Acquire() throws SmartLaunchException, SQLException {
    Connection conn = SmartLaunchDB.getConnection();
    int PCID = SmartLaunchDB.getCurrentPCID();

    conn.createStatement().execute("LOCK TABLE `licensekeys` WRITE");

    String sql = "SELECT * FROM `licensekeys` WHERE `InUseByPC` = 0 AND LicenseSetupID = ? ORDER BY `ID` DESC LIMIT 1";
    PreparedStatement statement = conn.prepareStatement(sql);
    statement.setInt(1, this.id);
    ResultSet results = statement.executeQuery();

    if (results.next()) {
        int licenseID …
Run Code Online (Sandbox Code Playgroud)

java mysql concurrency locking

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

这段代码怎么能像我看到的那样?

我有一个C++应用程序,有一次断言失败,我无法重现.这是失败一次的代码:

unsigned int test(std::vector<CAction> actionQueue) {
  unsigned int theLastCount = actionQueue.size() - 1;

  std::vector<CAction>::const_reverse_iterator rItr = actionQueue.rbegin();
  std::vector<CAction>::const_reverse_iterator rEndItr = actionQueue.rend();

  for (; rItr != rEndItr; ++rItr, --theLastCount) {
    const CAction &fileAction = *rItr;

    if (fileAction.test()) {
      continue;
    }
    return theLastCount;
  }

  assert(theLastCount == 0); // How could this fail?

  return theLastCount;
}
Run Code Online (Sandbox Code Playgroud)

不知何故,循环完成后,LastCount不为零.

从我对逻辑的解读,这应该是不可能的,除非:

  1. 其他一些线程方面影响了actionQueue(我认为不可能).
  2. 发生了一些瞬态内存损坏.

我在这里错过了一些愚蠢的东西,我的代码中是否有错误显示?请注意,在我看到这个的情况下,由于向量具有两个元素,因此应该将LastCount初始化为1.

c++ puzzle fencepost

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

在XNA 4.0中绘制大量纹理立方体

我正在尝试在XNA 4.0中编写一个自定义的Minecraft Classic多人游戏客户端,但是当我真正在游戏中绘制世界时,我感到非常难过.每个块都是3D空间中的立方体,并且它可以在每一侧具有不同的纹理.我一直在互联网上阅读,发现对于一个立方体,每一面都有不同的纹理,每个面都需要自己的一组顶点.这使得每个立方体总共有24个顶点,如果你有一个由64*64*64立方体组成的世界(或者可能更多!),那就会产生很多顶点.

在我的原始代码中,我将纹理贴图分成单独的纹理,并在绘制每个立方体的每一面之前应用这些纹理贴图.我被告知这是一种非常昂贵的方法,我应该将纹理保存在同一个文件中,只需使用UV坐标将某些子纹理映射到立方体上.尽管如此,这对性能没有太大作用,因为顶点的数量太多了.我还被告知要在VertexBuffer中收集顶点并立即绘制它们,但这也没有多大帮助,并且当顶点数量超过缓冲区的最大大小时偶尔会导致异常.我尝试制作立方体共享顶点的任何尝试也都失败了,导致大量减速和毛刺的立方体.

我不知道该怎么做.我一般都非常擅长编程,但任何类型的3D编程或游戏开发都完全逃脱了我.

这是我用来绘制立方体的方法.我有两个全局列表List<VertexPositionTexture>以及List<int>,一个用于顶点和一个指数.绘图时,我遍历世界上的所有立方体,并对非空的立方体(如Air)进行RenderShape.我拥有的形状类粘贴在下面.AddVertices方法中的注释代码是尝试使多维数据集共享顶点.当所有立方体的顶点都已添加到列表中时,数据将粘贴到VertexBuffer和IndexBuffer中,并调用DrawIndexedPrimitives.

说实话,我可能完全错了,但我真的不知道该怎么做,并且没有教程实际描述如何绘制大量对象,只有非常简单的对象.我不得不弄清楚如何重做BasicShape以获得多个纹理.

形状:http: //pastebin.com/zNUFPygP

c# xna

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