0

私は次のDataTemplateを持っています

        <DataTemplate x:Key="iconButtonsTemplate">
            <StackPanel  Orientation="Horizontal" Margin="120,50,0,0"  HorizontalAlignment="Left" VerticalAlignment="Top"  >
                <icon:IconButton   Command="{Binding Path=DataContext.ButtonClickCommand,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
                                   CommandParameter="{Binding Path=CommandParameter}"    TextContent="{Binding TextContent}" ImageSource="{Binding ImageSource}"
                                   IsIconButtonVisible="{Binding Path=MyLocalBoolList}"  />
            </StackPanel>
        </DataTemplate>

そして、私はそのようなItemsControlも持っています、

     <ItemsControl Width="2400"  VerticalAlignment="Top" HorizontalAlignment="Left"
                           ItemsSource="{Binding IconConfigList}"  ItemTemplate="{StaticResource iconButtonsTemplate}" >
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel  Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
      </ItemsControl>

したがって、ItemsControlのIconConfigListから独立してIsIconButtonVisibleプロパティをViewModelにバインドすることは可能ですか。

4

2 に答える 2

0
IsIconButtonVisible="{Binding Path=DataContext.ViewModelProperty,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" 

これがお役に立てば幸いです。

于 2012-07-23T03:44:29.283 に答える
0

バインディングで ElementName 値を使用します。

<DataTemplate x:Key="iconButtonsTemplate">
    <StackPanel Orientation="Horizontal" Margin="120,50,0,0"  HorizontalAlignment="Left" VerticalAlignment="Top"  >
        <icon:IconButton Command="{Binding Path=DataContext.ButtonClickCommand,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
                     CommandParameter="{Binding Path=CommandParameter}"    TextContent="{Binding TextContent}" ImageSource="{Binding ImageSource}"
                     IsIconButtonVisible="{Binding Path=DataContext.MyLocalBoolList, ElementName=ItemsControlName}"  />
    </StackPanel>
</DataTemplate>

ElementName が機能しない場合は、RelativeSource を試してください。

于 2012-07-22T23:01:17.003 に答える