2016-08-24 7 views
1

wpf mvvm 프로젝트에서 작업 중입니다. 사용자 정의 컨트롤에서 Observable 컬렉션의 데이터에 바인딩 된 Devexpress에서 DataGridControl 있습니다.ObservablleCollection에서 MultiValueConverter 읽기

 <xcdg:DataGridControl x:Name="DataGridName" HorizontalAlignment="left" VerticalAlignment="Stretch" 
           AutoCreateColumns="False" 
           ItemsSource="{Binding ViewModel.Items}" 
           ItemScrollingBehavior="Immediate" SynchronizeCurrent="True" TabIndex="69" > 

    <xcdg:DataGridControl.Columns > 
     <xcdg:Column FieldName="Name" AllowSort="False" Title="Name" ShowInColumnChooser="False" /> 
    </xcdg:DataGridControl.Columns> 
</xcdg:DataGridControl> 

Observable 컬렉션의 클래스는 Name (문자열) 및 IsVerified (부울)를 포함합니다.

private ObservableCollection<myData> _items = new ObservableCollection<myData>(); 

    public ObservableCollection<myData> Items 
    { 
     get { return _items; } 
     set { _items = value; } 
    } 

    public class myData 
    { 
     public string Name { get; set; } 

     public bool IsVerfied { get; set; } 
    } 

나는 또한 내가 IsVerfied의 값이 false 인 경우 데이터 그리드 위의 오류 메시지를 표시하는 데 사용하는 TextBlock이 있습니다. 나는 컬렉션에서 IsVerfied 값을 보내 싶습니다

<TextBlock Name="textBlockErrrMessage" Foreground="IndianRed"> 
          <TextBlock.Text> 
           <MultiBinding Converter="{StaticResource MultiValueConverter}"> 
            <Binding Path="DataContext.IsVerified" RelativeSource="{RelativeSource AncestorType=xcdg:DataRow}" ElementName="DataGridName" /> 
           </MultiBinding> 
          </TextBlock.Text> 
         </TextBlock> 

(나는 같은 일을하고있는 중이 야하지만 난 MultiValueConverter를 선택하는 이유는 다른 제어 즉 있도록)는 multivalueconverter있는에 내가 계획이 작업을 수행하려면 메시지를 반환하십시오. 내 문제는 Observablecollection에서 IsVerfied 값을 읽도록 MultiBinding에서 바인딩을 설정하는 방법입니다. 이 특정 라인은 제가 생각하는 것은, 당신이 RelativeSource 또는 ElementName을 중 하나를 사용하려는 바인딩에서 컬렉션 값을

<Binding 
    Path="DataContext.IsVerified" 
    RelativeSource="{RelativeSource AncestorType=xcdg:DataRow}" 
    ElementName="DataGridName" /> 
+0

이 텍스트 블록이 데이터 그리드에 비해 상대적으로 어디에 배치되었는지는 알려주지 않았습니다. – Aybe

+0

바인딩을 가져 오는 Textblock이 다른 usercontrol에 있습니다. – ZoHen

+0

당신은'DataContext.IsVerified'에 바인딩하고 있습니다 만, 데이터 컨텍스트가'myData'의 인스턴스라고 확신합니까? 또한 VS에서 출력 창을 확인하여 바인딩 오류를 발견하십시오. – Aybe

답변

1

의 위치에 문제가 있지만 둘이다. See this post에 대한 차이점을 잘 설명 할 수 있습니다.