我在使用GalaSoft MVVM Light框架将参数传递给relaycommand时遇到问题.我知道mvvm light的relay命令的实现不使用lambda参数,所以我做了一些研究,并找到了一种方法,人们通过做这样的事情来解决它:
public RelayCommand ProjMenuItem_Edit
{
get
{
if (_projmenuItem_Edit == null)
{
//This should work....
_projmenuItem_Edit = new RelayCommand(ProjEditNode);
}
return _projmenuItem_Edit;
}
}
private void ProjEditNode(object newText)
{
var str = newText as string;
OrganLocationViewModel sel =
ProjectOrganLocationView.GetExtendedTreeView().GetTopNode();
//Console.WriteLine(sel.OrganDisplayName);
sel.OrganDisplayName = str;
}
Run Code Online (Sandbox Code Playgroud)
但是,我一直在_projmenuItem_Edit = new RelayCommand(ProjEditNode);说错误Argument 1: cannot convert from 'method group' to 'System.Action'
我错过了什么?
我(像许多其他人一样)遵循webview教程,但我无法加载页面.一切都出现''网页不可用'
我确保模拟器确实可以访问互联网,并且只是为了排除模拟器的问题,我尝试在手机上安装它,这导致了相同的行为.
我已经读过,最大的问题是人们没有将INTERNET权限放在我的清单文件中,我试图将其作为清单中不同元素的子项,但无济于事.有谁知道为什么我不能加载这个?
这是我的代码:
Manifest:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<uses-permission android:name="android.permission.INTERNET" />
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
AndroidTestActivity
public class AndroidTestActivity extends Activity {
WebView webview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.google.com/m");
Intent intent = getIntent();
// To get the action of the intent use
System.out.println(intent.getAction());
// We current open a hard-coded URL …Run Code Online (Sandbox Code Playgroud) 所以几周前我的Eclipse IDE不再允许我远程调试我的应用程序,说它无法安装断点,因为没有显示行号...问题是我的Eclipse设置为显示行号(我经常在我的日常发展中使用)
我做了一些研究,发现它有时与使用ant构建项目和javac中的调试设置有关.我确保调试是在我的build.xml目标中设置的,但它仍然不允许我使用相同的错误进行调试.
现在,为了增加侮辱伤害,我点击了"不再显示此消息"的方框,所以现在我永远不会知道我在尝试时是否正在调试我的程序,或者如果它失败并且错误信息只是没出现.
有谁知道如何解决这一问题?或者,至少知道如何切换该错误消息以弹出备份,以便我可以判断是否/何时进行修复?
我在后面的代码中动态创建WPF元素,并且对于Grid我构建的每个行,它由a CheckBox和动态数字组成TextBoxes.需要的交互如下:
TextBoxes连续的所有值都为0,则将该CheckBox
IsChecked属性设置为true和禁用它.TextBoxes更改为0,则启用
CheckBox并设置IsChecked为false.CheckBox,则将所有关联设置TextBoxes
为0和禁用CheckBox我能够使用以下代码完成最后一部分的第一部分:
Binding setScoreToZeroIfIsNormalChecked = new Binding("IsChecked");
setScoreToZeroIfIsNormalChecked.Source = this.NormalCheckBoxControl;
setScoreToZeroIfIsNormalChecked.Converter = m_NormalCheckBoxJointScoresConverter;
tempJointScoreControl.JointScoreContainer.SetBinding(ContainerBase.SingleAnswerProperty, setScoreToZeroIfIsNormalChecked);
Run Code Online (Sandbox Code Playgroud)
和转换器:
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is bool && targetType == typeof(Answer))
{
if ((bool)value)
{
Answer answer = new Answer();
answer.Value …Run Code Online (Sandbox Code Playgroud) 我有一个string需要加下划线的C#应用程序.这需要在unicode中完成,因为字符串被导出并显示在word文件中.为此,我在每个字符之前都使用了下划线unicode \u0332,但它并没有完全强调"m"字符,如此屏幕截图所示:

我已经尝试\u0332过在m之前和之后的几次,但输出总是相同的.
有没有办法让它完全强调角色?
编辑:我只是尝试使用连续下划线unicode符号,\u2381但根本不渲染.
我有一个简单的xcopy脚本,我从命令行运行,它读取目录和文件名的CSV文件.我之前使用过非常相似的脚本而没有任何问题.这是脚本:
Z:\HOME\>for /f "delims=, tokens=1,2,3,4" %i in (Z:\HOME\MissingImages.csv) do
echo f | xcopy "Y:\%j\%k\%l" "C:\Horizon\%j\%k\%l" >> Z:\HOME\MissingImagesLog.txt
Run Code Online (Sandbox Code Playgroud)
但是,它不会复制任何文件.这是日志文件中的条目:
Does C:\Horizon\K\00\6bef500f.IMG specify a file name
or directory name on the target
(F = file, D = directory)? f
0 File(s) copied
Run Code Online (Sandbox Code Playgroud)
它正在查找图像,因为如果我将根目录更改为其他内容,脚本将只0 File(s) copied为所有条目填充日志文件,因此文件在那里可以看到...
此外,Z:\驱动器在网络而不是本地,但我再次在网络上使用非常相似的脚本没有问题(它只需要更长的时间).
我尝试过不同的选项,比如/i,/s等等,但我似乎无法将其复制到任何文件中.
我有一个应用程序,它读取数据库表并将其放入树视图中.树视图的当前ItemTemplate如下所示:
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubOrganLocations}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="35" />
<ColumnDefinition Width="35" />
<ColumnDefinition Width="35" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding OrganDisplayName}" />
<TextBox Grid.Column="1" IsEnabled="True" />
<TextBox Grid.Column="2" IsEnabled="True" />
<TextBox Grid.Column="3" IsEnabled="True" />
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
但是,将来可能会有更多列需要添加(由表中不同值的数量决定),所以我试图动态创建它.我该怎么做呢?
我file.GetFreeSpace()在我的应用程序中使用Java 的 File 类来确保在传输文件之前有足够的空间。该路径是一个 unc 路径,目前有大约 5TB 的可用空间。但是,当运行上述代码时,返回的空间量仅为 713998336 字节(~680MB)。
我将应用程序映射为使用不同的 unc 路径,该路径具有 100MB 到 1GB 多一点的可用空间(我正在添加/删除文件以进行测试),并且应用程序报告了正确的可用空间量。
更新:通过大量调试,我发现了问题。与此类似的 unc 路径:\\domain6\test\Scratch_Folder\其中 Scratch_Folder 是一个 DFS 命名空间,具有约 5TB 的可用空间。然而,当file.getFreeSpace执行时,它返回\\domain6\test\只有 670MB的可用空间。为什么会发生这种情况?
我有一个使用哈希算法来组织文件的文件系统.我过去曾使用xcopy通过传入一个文件来复制文件到另一个位置,该文件包含所有文件的列表并让它遍历它.该脚本类似于以下内容:
for /f "delims=, tokens=1,2,3" %i in (D:\foo.csv)
do echo F | xcopy /i /d "Z:\%i\%j\%k" "Y:\%i\%j\%k" >> "D:\xcopy\Log.txt"
Run Code Online (Sandbox Code Playgroud)
但是,现在我遇到的情况是,除了复制文件中提供的foo.csv文件之外,我还希望它们也被删除.我查看了xcopy文档,找不到任何内容.有没有我可以做到这一点,即使我必须运行另一个脚本来浏览相同的文件列表并在使用xcopy后删除它们?
谢谢!
由于在.NET中没有不区分大小写string.Contains()的情况(但是string.Equals()存在一个不区分大小写的版本让我感到困惑,但我离题了),使用RegEx.IsMatch()与使用之间的性能差异是什么String.ToUpper().Contains()?
例:
string testString = "tHiSISaSTRINGwiThInconSISteNTcaPITaLIZATion";
bool containsString = RegEx.IsMatch(testString, "string", RegexOptions.IgnoreCase);
bool containsStringRegEx = testString.ToUpper().Contains("STRING");
Run Code Online (Sandbox Code Playgroud)
我一直听说这string.ToUpper()是一个非常昂贵的电话,所以当我想进行string.Contains()比较时,我不愿意使用它,但RegEx.IsMatch()在性能方面如何比较呢?
是否有更有效的方法进行此类比较?
我在C#中运行一个返回一个值(String)的SQL命令.我然后尝试将其保存到变量,但它总是抛出此异常:
System.Data.dll中出现类型'System.InvalidOperationException'的第一次机会异常线程''(0x1bbc)已退出,代码为0(0x0).System.InvalidOperationException:没有数据时读取的尝试无效.在System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
但是,当我在SQL Server中运行相同的命令时,它肯定会输出一个值.
myCommand = new SqlCommand("SELECT TrialName FROM dbo.CT WHERE NumId='"+TrialId+"'", myConnection);
SqlDataReader dr = myCommand.ExecuteReader();
String TName = dr[0].ToString();
Run Code Online (Sandbox Code Playgroud)
即使我对整个sqlcommand进行硬编码(而不是使用TrialId变量),它仍会抛出异常.这里发生了什么?
我有一个绑定的树视图,它显示了treeviewitem的一个属性(即displayname)(它们是一个对象的自定义视图模型).
这是相关的xaml:
<local:ExtendedTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubOrganLocations}">
<TextBlock Text="{Binding OrganDisplayName}" >
</TextBlock>
</HierarchicalDataTemplate>
</local:ExtendedTreeView.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
我想要的是能够在括号中显示显示名称旁边的另一个属性.
所以不是看起来像这样的树视图:
Root
-sub node1
--subsub node1
-sub node2
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样:
Root (Type1)
-sub node1 (Type2)
--subsub node1 (Type 3)
-sub node2 (Type 1)
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?使用多重绑定?
c# ×6
wpf ×4
java ×2
string ×2
treeview ×2
xcopy ×2
android ×1
cmd ×1
data-binding ×1
eclipse ×1
itemtemplate ×1
mvvm-light ×1
regex ×1
relaycommand ×1
sql ×1
textblock ×1
unc ×1
unicode ×1
webview ×1
windows ×1