小编Bol*_*olu的帖子

按钮IsEnabled绑定无法正常工作

Button.IsEnabled 不能正常工作.

我调试了代码,属性的setter被"true"值命中.但该按钮仍然被禁用.

View.xaml:

<StackPanel Grid.Row="2" Margin="0,20,0,0" >
        <Button Name="ButtonOk" Content="OK" Margin="0,0,4,0" IsEnabled="{Binding SomethingIsValid}"  Command="{Binding CommandOk}" />
        <Button Name="ButtonCancel" Content="Cancel" Margin="0,0,4,0" IsCancel="True" /
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

View.xaml.cs:

...
public View(ViewModel viewModel)
{
    this.InitializeComponent();

    this.viewModel = viewModel;
    this.DataContext = viewModel;            
}
Run Code Online (Sandbox Code Playgroud)

视图模型:

public bool SomethingIsValid
{
   get
   {
      return somethingIsValid;
   }
   set
   {
      this.somethingIsValid= value;
      this.RaisePropertyChanged(() => this.SomethingIsValid);
   }
}

#region IDataErrorInfo
public string this[string columnName]
{
   get
   {
      this.SomethingIsValid= false;

      if ("SomeName" == columnName)
      {
         if (string.IsNullOrEmpty(this.Status))
         {
            return "Please bla bla.."; …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

具有特殊字符的子串

假设我有一个字符串:

string str = "09012013 Receipt 09012013 #12"
Run Code Online (Sandbox Code Playgroud)

我想做substring返回"Receipt 09012013#12",我用substring:

var result = str.Substring(9);
Run Code Online (Sandbox Code Playgroud)

结果只是"收据09012013"

我尝试了其他特殊字符(%,§,$ ...),它工作,substring返回"收据09012013%12",但使用#和&,子字符串只返回"收据09012013"​​.

有什么想法吗?谢谢.

编辑

我的代码:

new NaviListItem("renameBtn", "showwaitingscreen", "akte/renameakte?entityid=" + Request["parentid"] + "&aktenkurzbezeichnung=" + Model.Node.Header.Substring(Model.Node.Ordnungsnummer.Length+1), "umbenennen.png", Model.RenameVisible, "Umbenennen", "Umbenennen"),
Run Code Online (Sandbox Code Playgroud)

c# asp.net string substring razor

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

C#WPF标签可见性异常

我正在尝试根据组合框的选定值显示标签.我正在使用VS2010.

这是代码:

private void pointsSettings_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (this.pointsSettings.SelectedValue.ToString() == "between")
        {
           pointsAboveLabel.Visibility = Visibility.Collapsed;
        }
        else
        {
           pointsAboveLabel.Visibility = Visibility.Visible;
        }
    }
Run Code Online (Sandbox Code Playgroud)

和XAML:

 <ComboBox Name="pointsSettings" SelectionChanged="pointsSettings_SelectionChanged">
     <ComboBoxItem Content="between" />
     <ComboBoxItem Content="above" IsSelected="True" />
     <ComboBoxItem Content="below" />
 </ComboBox>
 <Label Content="points" Name="pointsAboveLabel" />
 <Label Content="and" Name="pointsBetweenLabel" Visibility="Collapsed" />
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误: 在此输入图像描述 文本读取:"对象引用未设置为对象的实例".

我知道还有另一个非常相似的问题 - 事实上同样的错误 - 但是提供的解决方案(将变量初始化移动到InitializeComponent()方法调用之上)并不适合我,因为我没有对象初始化.

任何和所有的帮助都得到了最热烈的赞赏.

c# wpf xaml label visibility

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

使用变量时,SQL查询以特定值运行慢10倍

编辑:没有结果DB1.dbo.TABLE_B有STRING_ID ='id009'或'id008'; STRING_ID是varchar(100)和不是唯一的.

EDIT2:两个查询的执行计划相同.

我在SQL Server 2008服务器上运行以下查询:

DECLARE @stringid nvarchar(10)
SET @stringid='id009'
SELECT * FROM DB1.dbo.TABLE_A
         INNER JOIN DB1.dbo.TABLE_B
         ON DB1.dbo.TABLE_A.ID=DB1.dbo.TABLE_B.ID
WHERE DB1.dbo.TABLE_B.STRING_ID=@stringid
ORDER BY DB1.dbo.TABLE_B.UID desc, DB1.dbo.TABLE_A.TIME desc 
Run Code Online (Sandbox Code Playgroud)

此查询将花费10秒钟来获取结果(为空).

如果我更改此查询的第二行以使用任何其他值,例如

SET @stringid='id008'
Run Code Online (Sandbox Code Playgroud)

查询将立即获得结果(空结果).

更重要的是:如果我将查询更改为不使用变量,而只是传递值('id009'),如下所示:

SELECT * FROM DB1.dbo.TABLE_A
         INNER JOIN DB1.dbo.TABLE_B
         ON DB1.dbo.TABLE_A.ID=DB1.dbo.TABLE_B.ID
WHERE DB1.dbo.TABLE_B.STRING_ID='id009'
ORDER BY DB1.dbo.TABLE_B.UID desc, DB1.dbo.TABLE_A.TIME desc
Run Code Online (Sandbox Code Playgroud)

查询也会立即得到结果(空结果).

所以我的问题是为什么这个查询运行得如此之慢,变量设置为某个值?

sql sql-server performance sql-server-2008

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