0

테이블이 있습니다 (SQL Server에서 WareTable).콤보 상자에서 값을 선택하면 텍스트 상자가 자동으로 채워집니다.

내 양식에 datagridview (= dgv)를 사용해야합니다.

내 dgv에서 첫 번째 열은 ComboBox (WareName)입니다.

ComboBox에서 값을 선택하려면 다음 열 (sellPrice)이 자동으로 채워지 길 원합니다.

나는 어떻게 할 수 있습니까?

+0

@matzone : 안녕하세요, 내 질문을 변경할 수 없습니다 ... – Majid

답변

0

멀티 바인드가 도움이 될까요? 데이터 격자보기의 각 행에 대한 뷰 모델이있는 경우 열 1에서 값을 선택하면 뷰 모델에 대한 속성을 설정해야합니다. 당신은 설정 multibinding와 당신이 필요로하는 컬럼 1과 다른 어떤 데이터에서 속성에 바인딩과 2

<DataGridTextColumn 
    Header="Ticket Qty" 
    Width="Auto" 
    IsReadOnly="True" > 
    <DataGridTextColumn.Binding> 
    <MultiBinding Converter="{StaticResource unitConverter}"> 
     <Binding Path="Column1ViewModelProperty"/> 
     <Binding Path="Column2ViewModelProperty" /> 
     <Binding Path="AdditionalViewModelProperty"/> 
    </MultiBinding> 
    </DataGridTextColumn.Binding> 
</DataGridTextColumn> 

http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.converter.aspx

또는 열에서 올바른 값을 표시하는 값 변환기를 할 수, 당신은 할 수 있습니다 Column1ViewModelProperty를 변경하면 Column2ViewModelProperty가 실제 뷰 모델 클래스에서 업데이트됩니다 (Column1ViewModelProperty의 설정자에서 이벤트 발생 또는 Column2ViewModelProperty를 업데이트하는 메소드 호출).

<DataGridTextColumn Binding="{Binding Column1ViewModelProperty }"/> 

//Code behind 
public string Column1ViewModelProperty { 
    get{ 
    return _column1ViewModelProperty; 
    } 
    set{ 
    _column1ViewModelProperty = value; 
    Column2ViewMOdelProperty = calculatedValue; 
    OnPropertyChanged("Column1ViewModelProperty"); 
    } 
} 

public string Column2ViewModelProperty { 
    get{ 
    return _column2ViewModelProperty; 
    } 
    set{ 
    _column2ViewModelProperty = value; 
    OnPropertyChanged("Column2ViewModelProperty"); 
    } 
} 
+0

tnx 님, C# 코드로 무엇을합니까? 나는 지금 XML 코딩을 모른다. – Majid

+0

어떤 DataGridVeiw 컨트롤을 사용하고 있습니까? 귀하의 설명을 기반으로 WPF DataGridView라고 가정했습니다. 만약 당신이 내 대답에 좀 더 C# 코드를 추가했습니다. – Darlene