小编Ale*_*dra的帖子

打开目录对话框

我希望用户选择一个目录,然后保存我将生成的文件.我知道在WPF中我应该使用OpenFileDialog来自Win32,但不幸的是,对话框需要选择文件 - 如果我只是单击"确定"而不选择一个文件,它将保持打开状态.我可以通过让用户选择一个文件然后去除路径以找出它所属的目录来"破解"该功能,但这最多是不直观的.以前有人见过这个吗?

filesystems wpf dialog

260
推荐指数
9
解决办法
30万
查看次数

表单身份验证票证是否足够安全?

当用户基于默认的表单身份验证方法登录时,服务器会创建一个包含加密数据的cookie(使用Machine Key作为加密密钥).

这意味着如果有人找到/猜测/访问服务器的机器密钥,他将登录到Web应用程序.

我开发了一些在4台服务器上的应用程序.所以,我为machine.config中的所有服务器硬编码了相同的机器密钥,我无法使用自动生成模式.

  1. 是否可以暴力破坏机器钥匙?
  2. 还有其他方法吗?(我不想使用Windows和Passport)
  3. 表单身份验证票证是否足够安全?(即电子银行应用程序可接受)

asp.net forms-authentication machinekey machine.config formsauthenticationticket

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

当其他窗口处于焦点时隐藏弹出控件

我有一个自定义UserControl尝试重新创建文本框的自动完成.当用户键入时,文本用于过滤提供的项目集合,然后弹出窗口显示ListBox,其中的项目与用户键入的项目相匹配.

不幸的是,如果用户决定从应用程序切换到另一个窗口(浏览器,MSWord,任何东西!),Popup仍然在每个其他窗口之上!

此外,如果我在弹出窗口的情况下移动我的窗口(托管自定义控件),弹出窗口就会保持原位(并且不会跟随窗口)!这有点好笑,但显然是不可接受的行为.我环顾四周,但只发现了一篇关于此的帖子,两年没有得到答复:(

wpf popup custom-controls

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

在WPF工具包图表上隐藏周末

我正在制作一个小型应用程序,用于绘制金融价格数据,而且由于金融市场在周末关闭,我当时没有数据.默认情况下,在新的WPF工具包中找到的图表显示星期五和星期一之间存在很大差距,这种行为是不可接受的.我试图找出一种方法来"隐藏"周末的差距,但似乎无法找到任何好的解决方案.到目前为止,我认为我必须重载标准DateTime结构(如何?),它将能够识别并跳过周末和假日.在我开始滑坡之前,我正在寻找建议和/或指示.

更多细节:

我获得了大量数据 - 目前纽约证券交易所的每日收盘价.我正在使用它DayTimeAxis来绘制其自变量LineSeries的类型DateTime.它目前只是简单地绘制所有价格,一次一天 - 这就是魔鬼的地方,由于周六和周日以及一些重大节日缺乏数据,它显示出更大的差距.

一旦数据可用,我最终将必须显示更详细的(每小时,分钟)图表,但如果用户想要查看某个星期五和下周一的每小时数据,问题仍将存在.

wpf charts finance weekend

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

立即更新UserControl中的所有绑定

当其可见性更改为Visible时,我需要更新UserControl上的所有绑定.几乎所有绑定都绑定到用​​户控件的DataContext属性,所以我试图更新该绑定的目标:

BindingOperations.GetBindingExpressionBase(this, UserControl.DataContextProperty).UpdateTarget();
Run Code Online (Sandbox Code Playgroud)

但是我得到nullGetBindingExpression(..)方法的结果,我想知道我是否使用了这个错误.

此外,是否有任何其他好的方法来刷新控件上的所有绑定(使用DataContext作为源).

data-binding wpf custom-controls wpf-controls

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

使用Google Analytics跟踪基于ajax的搜索

我们有一个搜索框,可以在嵌入到页面中的Google地图上显示结果.我们对服务器使用ajax异步调用来执行搜索,然后在地图上显示结果,而不会在页面URL中进行任何重定向或更改.

是否可以使用Google Analytics的网站搜索来跟踪此信息?那将是什么设置?或者这不是用于跟踪网站搜索功能的东西吗?

jquery google-analytics

7
推荐指数
2
解决办法
2316
查看次数

使用WCF服务返回DataTable对象

这是一个奇怪的问题,我正在与WCF尝试在响应中发送DataTable.我有以下服务合同:

[ServiceContract]
public interface ISapphireDataService {
    [OperationContract]
    DataTable LoadData(string query, DateTime start, DateTime end);

    [OperationContract]
    string LoadDataTest();
}
Run Code Online (Sandbox Code Playgroud)

以及方法的以下实现(其中provider是一个使数据库调用并返回DataTable的类):

public DataTable LoadData(string query, DateTime start, DateTime end) {
    //DataSet temp = new DataSet();
    //temp.Tables.Add(provider.LoadData(query, start, end).Copy());
    //return temp;

    return provider.LoadData(query, start, end).Copy();
}

public string LoadDataTest() {
    return "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)

现在,当我这样离开时,我总是在调用LoadData(...)方法时出错:

接收到http:// localhost:8731/Design_Time_Addresses/DataProviderServiceLibrary/SapphireDataService /的HTTP响应时发生错误 .这可能是由于服务端点绑定不使用HTTP协议.
这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭).
请参阅服务器日志以获取更多详

这很奇怪,因为服务配置为使用wsHttpBinding,我假设使用HTTP协议.如果我尝试调用LoadDataTest()方法,则不会发生错误!

所以我所做的就是将我从数据库中获取的这个表放入DataSet对象中并且它有效!没有错误或任何类似的东西.但是,DataSet中返回的表是EMPTY.所有字段都是空的,没有数据被正确转移/反序列化,似乎:(

这似乎是一个常见问题,但我还没有看到有效的答案.有任何想法吗?

datatable wcf serialization dataset

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

在代码中看不到命名的Silverlight控件

在Silverlight 3的前几个小时里,作为狂热的WPF用户,我对它不支持的许多事情感到非常失望.这对我来说似乎是一个奇怪的问题,它是如此通用,我无法在网上找到任何关于它的东西.

我有以下XAML:

<controls:TabControl x:Name="workspacesTabControl" Grid.Row="1"
Background="AntiqueWhite" ItemsSource="{Binding Workspaces, ElementName=_root}"/>
Run Code Online (Sandbox Code Playgroud)

但是,我无法看到workspacesTabControl代码隐藏.我想也许IntelliSense只是意味着并试图继续编译它,但是有一个错误:

Error   1   The name 'workspacesTabControl' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)

如何在代码隐藏中访问控件?

编辑:我意识到我粘贴了错误的错误 - 我在UserControl中有两个名为workspacesTabControl和menuStrip的控件.在代码隐藏中,我无法通过他们的名字找到其中任何一个.

以防万一,这里是XAML menuStrip:

<controls:TreeView Grid.ColumnSpan="2" Height="100" x:Name="menuStrip"
                   ItemContainerStyle="{StaticResource MenuStripStyle}"
                   ItemsSource="{Binding Menu, ElementName=_root}"/>
Run Code Online (Sandbox Code Playgroud)

再次编辑:

我不确定这是否有用,但我已经看了一下InitializeComponent()代码,这就是我所看到的:

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Windows.Application.LoadComponent(this, new System.Uri("/SapphireApplication;component/SapphireMain.xaml", System.UriKind.Relative));
}
Run Code Online (Sandbox Code Playgroud)

它似乎只是在运行时(不是在编译之前或编译期间)加载XAML,因此menuStripworkspacesTabControl名称实际上并没有在任何地方注册(因为它们通常在WPF/win表单中).该属性可能是个问题吗?我在哪里可以摆脱所有未来UserControls的这个要求?

silverlight user-controls code-behind silverlight-3.0

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

使用ObjectDataProvider

我无法相信没有人能够克服这个问题,或者我只是错过了一些东西.

我有一个自定义DataSourceController,它处理检索数据并将其提供给其余的应用程序控件.当然,它使用sql连接,我也初始化.

我的应用代码:

private ISQLConnection conn;
public ISQLConnection SqlConnection { get { return conn; } }

private DataSourceController dataSource;
public DataSourceController DataSource { get { return dataSource; } }

protected override void OnStartup(StartupEventArgs e) {
    //-------------------------------------------------------
    // Initialize connections
    conn = new OracleSQLConnection("connectionStringHere");

    //-------------------------------------------------------
    // Initialize controllers
    //dataSource = new DataSourceController(conn);

    base.OnStartup(e);
}
Run Code Online (Sandbox Code Playgroud)

现在我想在XAML中创建ObjectDataProvider,然后用它来绑定控件中的数据:

<ObjectDataProvider ObjectType="{x:Type data:DataSourceController}" x:Key="DataSource" MethodName="GetVenues" />
Run Code Online (Sandbox Code Playgroud)

问题是DataSourceController没有无参数构造函数,并且需要传入OracleSQLConnection对象(这是我的App代码隐藏中的公共属性).

这是可能吗?或者我不得不求助于我想要数据绑定的每个控件的代码内DataContext属性?!

wpf xaml objectdataprovider app.xaml

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

开发数学库

我正在寻找为我正在进行的项目创建自定义数学库.该项目是用C#编写的,我有点担心C#是否足够快.该库将具有许多自定义数学公式和等式,以应用于非常大的数据集.模拟和矩阵运算也将完成(即蒙特卡罗模拟),因此必须快速.

一种想法是用C++创建数学库并在C#项目中引用这个.dll.我想知道这是否值得付出努力?

c# c++ math

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

淘汰赛日期验证无法正常工作

我需要以本地化格式(SK)验证日期,并且无法进行淘汰验证.

我正在使用:Durandal 1.2.0 Knockout 2.3.0 Knockout验证https://github.com/Knockout-Contrib/Knockout-Validation

我需要这样的东西才能起作用:

var newStartDate = ko.observable()
.extend({ 
required: { message: 'Start date is required.' }, 
date: true, 
formattedDate: { format: 'ddMMyyyy', delimiter: '.' } 
});
Run Code Online (Sandbox Code Playgroud)

然后,如果我调用newStartDate.isValid(),我会得到以下结果:

newStartDate("");
false (OK)

newStartDate("test");
false (OK)

newStartDate("2013-02-02");
true (Bad)

newStartDate("2.2.2013");
false (Bad)
Run Code Online (Sandbox Code Playgroud)

结果应该是:

newStartDate("2013-02-02");
false

newStartDate("2.2.2013)"; // or "2. 2. 2013"
true
Run Code Online (Sandbox Code Playgroud)

我在扩展功能中有一些自定义验证的解决方案,但这不是我想要的.我想阻止上面的工作,它也更短.

javascript validation date knockout.js durandal

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