문제

텍스트 상자가 포함된 목록 상자를 만들어야 합니다.그리고 그것은 역동적이어야 합니다.코드 뒤에 관찰 가능한 컬렉션이 있고 이를 목록 상자에 바인딩하고 싶습니다.동적 목록 상자를 원하며 이 목록에는 편집 가능한 텍스트 상자가 있어야 합니다.그래서 기본적으로 목록 상자에서 multiplr 텍스트 상자를 바인딩하고 싶습니다.어떤 도움이라도 주시면 감사하겠습니다.

<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList"></TextBox>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

이렇게 하면 관찰 가능한 컬렉션의 항목과 동일한 텍스트 상자 수가 있지만 텍스트 상자의 텍스트가 설정되지 않습니다.

도움이 되었습니까?

해결책

텍스트 상자를 클래스의 속성에 바인딩해야

<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Binding="{Binding PROPERTYINCLASS}"></TextBox>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
.

다른 팁

귀하의 항목이 ObservableCollection 그냥 평범하다 strings를 사용하면 다음과 같이 전체 문자열 값에 데이터 바인딩할 수 있습니다.

<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList" Text="{Binding}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

로부터 Binding.Path 재산 MSDN 페이지:

선택적으로 마침표(.) 경로를 사용하여 현재 소스에 바인딩할 수 있습니다.예를 들어, Text="{Binding}" 는 다음과 같습니다 Text="{Binding Path=.}".

컬렉션에 속성이 있는 개체가 있는 경우 관련 속성 이름을 참조해야 하므로 @nit의 답변이 정확했을 것입니다.

<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top