2013-09-23 36 views
-1

您好我需要缩小搜索字符串,以允许用户在搜索结束时放置一些标志,如“/ A”或“/ W”。这是wpf和MVVM。我试图把它放在属性中,但它看起来不起作用。如果我不能把它放在房子里,我应该把它放在哪里。我应该把最后两个字符的字符串

public NavDataType Type 
    { 

     get 
     { 
      return _type; 
     } 
     set 
     { 
      if (_type.ToString().Substring(_type.ToString().Length - 2, 2) == "/A") 
       _type = NavDataType.Airport; 
      if (_type.ToString().Substring(_type.ToString().Length - 2, 2) == "/W") 
       _type = NavDataType.Waypoint; 
      if (_type.ToString().Substring(_type.ToString().Length - 2, 2) == "/N") 
       _type = NavDataType.Navaid; 
      SetProperty(ref _type, value, "Type"); 

     } 
    } 
+0

只是一个说明。我将采用if语句中的逻辑: _type.ToString()。子字符串(_type.ToString()。Length - 2,2) 将结果保存在变量中,因此您不必执行该计算一遍又一遍。 –

+2

你应该使用string.EndsWith like'if(_type.ToString()。EndsWith(“/ A”))' – Habib

+0

用户可以有多个标志吗?即''Something/A/W“'? – Jonesopolis

回答

0
 if (_type.ToString().Substring(_type.ToString().Length - 2, 2) == "/N") 
      _type = NavDataType.Navaid; 
     SetProperty(ref _type, value, "Type"); 

的问题是,你的if语句(工作correcty)设置_type,但随后的SetProperty呼叫覆盖与任何value,在当时是得到了通过。

相关问题