2011-09-24 78 views
2

是否可以在C#表達式中使用佔位符?我有濾波記錄的表達在數據網格如下:C#表達式中的佔位符WPF

view.Filter = item => 
     {     
      OrdsRlsd vitem = item as OrdsRlsd;     

      if (vitem.OrderNo >= Convert.ToInt32(TxtCond1.Text) && vitem.OrderNo <= Convert.ToInt32(TxtCond2.Text)) 
      { 
       return true; 
      } 
      return false; 
     }; 

在該表達式中,比較操作符和TxtCond1和TxtCond2值是動態的。我們可以使用佔位符嗎?

+1

佔位符?你能解釋一下你在找什麼嗎? – Carsten

+0

做外部變量或甚至是後期解決的價值將是一個很好的placholder在你的條款?例如Func ? 'Func resolveString =()=> TxtCond1.Text; Convert.ToInt32(resolveString())' – sll

+0

在表達式vitem.OrderNo中,OrderNo是數據庫表中的列。如果用戶想通過DateRequired(它是用戶從組合框中選擇的)過濾數據網格,我們如何將它傳遞給表達式,如vitem.DateRequired – sony

回答

0

是的,你可以通過那些作爲Func<string>參數。所以說你的功能定義是這樣的

public void Filter(Func<string> string1, Func<string> string2) 
{ 
var result = item => 
     {     
      OrdsRlsd vitem = item as OrdsRlsd;     

      if (vitem.OrderNo >= Convert.ToInt32(string1.Invoke()) && vitem.OrderNo <= Convert.ToInt32(string2.Invoke())) 
      { 
       return true; 
      } 
      return false; 
     }; 
} 
+0

你好,請給出更多關於同樣的解釋。我無法理解它。 – sony

+0

我需要解釋的部分是什麼? – thekip