2016-08-23 11 views
0

DataGrid를 빌드하는 데 마우스를 사용하여 선택했지만 ComboBox가 손실 된 후 목록의 첫 번째 항목으로 재설정 할 때 올바른 필드를 표시하고 선택하는 사용자 정의 ComboBoxColumn이 포함되어 있습니다. 초점. 또한 Excel 스프레드 시트에서 데이터를 가져올 때 ComboBox가 워크 시트의 값과 일치하도록 변경되지 않습니다.DatagridComboBoxColumn으로 데이터를 가져 오면 콤보 목록 값이 업데이트되지 않습니다.

참고 :이 클래스를 다시 사용하여 다른 데이터에 대한 일련의 ComboBox를 만드는 것이 좋습니다.

콤보 상자가 새로운 값을 허용하지 못하게하는 원인은 무엇입니까?

콤보 목록 클래스

namespace x.Models 
{ 
    public class ComboList 
    { 
    public int FieldID {get;set;} 
    public string FieldString {get;set;} 
    } 
} 

XAML 콤보 상자 코드

<DataGridComboBoxColumn Header="Platform Type" x:Name="PlatformTable" SelectedValueBinding="{Binding FieldID}" DisplayMemberPath="FieldString" SelectedValuePath="1" /> 

코드 (뒤)

public partial class MainWindow: Window 
{ 
    public ObservableCollection<Models.ComboList> PlatformCombo {get;set;} 
    public MainWindow() 
    { 
    PlatformCombo = new ObservableCollection<Models.ComboList>() 
    { 
     new Models.ComboList() {FieldID=1,FieldString="Mounted"}, 
     new Models.ComboList() {FieldID=2,FieldString="Dismounted"} 
    }; 
    PlatformTable.ItemsSource = PlatformCombo; 
} 

샘플 엑셀 데이터

Platform Type 
1 
2 
+0

나는 SelectedValueBinding에 UpdateSourceTrigger 및 모드를 추가했습니다,하지만 난 같은 문제를보고하고있다 : 'SelectedValueBinding = "{fieldID가 바인딩, UpdateSourceTrigger =하여 PropertyChanged, 모드 = 양방향}"' – Kahlan

답변

0

XAML 콤보 상자 SelectedValueBinding는 일반 콤보 상자 FieldID 대신 DataGrid에 콤보 상자 컨트롤 이름으로 설정해야하며 UpdateSourceTrigger 요구 LostFocus로 설정 될 수 있습니다.

SelectedValueBinding="{Binding Platform_Type, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"

0

SelectedValueBinding에서 SelectedItemBinding으로 변경하면 새 값을 허용하지 않는 필드에서 문제의 한 부분을 수정합니다. [링크] (DataGridComboBoxColumn not updating model WPF)

Excel에서 가져올 때 콤보 상자가 업데이트되지 않는 이유는 무엇입니까? 콤보 상자에 적절한 데이터가 있더라도 각 행마다 비어 있습니다.