2014-06-09 57 views
0

我目前正在創建一個小測試應用程序,並且可以通過Linq來填充drodown列表。我得到一個運行時錯誤,我真的可以做一個指針:使用EF和LINQ填充C#/ XAML組合框

C#

egwEntities db = new egwEntities(); 
var sel = from o in db.dropdownsource select new {o.machine_desc}; 
TxtProductFamily.ItemsSource = sel; 

XAML:

<ComboBox x:Name="TxtProductFamily" Text="{Binding testfield}" HorizontalAlignment="Left" Height="26" Margin="10,182,0,0" VerticalAlignment="Top" Width="319"/> 
+1

是否行得通? –

+0

什麼是運行時錯誤? – BenjaminPaul

+1

@AndyDB _我得到一個運行時錯誤_但是在哪裏和什麼是錯誤? – dkozl

回答

1

你需要做的是這樣的:

var sel = (from o in db.dropdownsource 
      select o.machine_desc).ToList(); 

TxtProductFamily.ItemsSource = sel; 

或更好的將創建一個視圖模型:

public class MyViewModel 
{ 

public string MyText {get;set;} 
public string MyValue {get;set;} 

} 

然後:

var sel = (from o in db.dropdownsource 
      select new MyViewModel{ 
            MyText = o.machine_desc, 
            MyValue = o.SomeColumn 
            }).ToList<MyViewModel>(); 

和:

如果修復了錯誤的外殼( 「TxtP ...」 與 「Txtp ......」)
<ComboBox x:Name="TxtProductFamily" Text="{Binding MyText}" HorizontalAlignment="Left" Height="26" Margin="10,182,0,0" VerticalAlignment="Top" Width="319"/> 
+0

謝謝(又一次Ehsan) - 如果你曾經在漢堡,我欠你一杯啤酒(或其他東西)。 – AndyDB

+0

真是太好了你......很高興幫助你... :) –