2012-12-19 2 views
0

itemsControl에 바인딩하는 목록이 있습니다. 첫 번째 항목은 isChecked 부분이 아니라 잘 바인딩됩니다. 여기 WPF에서 IsChecked가 제대로 바인딩되지 않았습니다.

코드입니다

IsLinked 오히려 일을 ... 또는하지 않습니다 위의 XAML

<CheckBox CommandParameter="{Binding TId}" Content="{Binding TName}" IsChecked="{Binding IsLinked}" /> 

에서 부울

private bool IsLinked(int Id) 
{ 
    return (AnotherList.Any(x=>x.id==Id)); 
} 

을 반환하는 함수입니다

var LstTemplates = Templates.Select(x=>new {TName=x.TemplateName,TId = x.Id, IsLinked = IsLinked(x.Id)}); 
itemsControlTemplates.ItemsSource = LstTemplates; 

, 앱은 얼버무 리면서 완전히 관련없는 코드를 중단시킵니다.

그러나 내가 가지고가는 경우에 동일한 "{IsLinked 바인딩}"와 메시지 박스에 또는 체크 박스의 내용은 다음 보여줍니다 출력이 ...

내가 잘못 않았다 ?

업데이트 : 좋아, 코드가 관련이없는 코드에서 중단되었다고 말하는 부분을 무시하십시오. 오해의 소지가 있습니다.

    <ItemsControl Name="itemsControlTemplates" > 
         <ItemsControl.ItemTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" Margin="2"> 

            <CheckBox CommandParameter="{Binding TId}" Content="{Binding TName}" IsChecked="{Binding IsLinked}" /> 
           </StackPanel> 
          </DataTemplate> 
         </ItemsControl.ItemTemplate> 
        </ItemsControl> 

콘텐츠에 'IsLinked'를 출력하면 표시됩니다. 'IsChecked'에 바인딩하려면 어떻게해야합니까?

+2

'또는 오히려보십시오, 여기에 전혀 관련이없는 code' 충분하지 않은 정보에 대한 응용 프로그램 동결 및 휴식 대답합니다. 이것은 정확하게, 그리고 오직, 이것이 도움이 될 수있는 프로토 타입을 작성하는 곳입니다. – Will

답변

2

IsChecked는 TwoWay 바인딩을 시도하고 있습니다 ... 익명 형식에서는 가능하지 않습니다.

IsChecked="{Binding IsLinked, Mode=OneWay}" 
+0

Thx Kek, 그게 효과가 있어요. –

관련 문제