簡體   English   中英

更改ItemTemplate中的列的值

[英]Change the value of the columns in the ItemTemplate

我有這樣的事情:

<ListBox Margin="10, 10, 10, 1" Visibility="Visible" ItemContainerStyle="{StaticResource Remind_list}" x:Name="Reminders_list" Background="Transparent" Height="auto">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Width="440">
                <Grid.Background>
                    <ImageBrush Stretch="Fill" ImageSource="/Images/bg.png"/>
                </Grid.Background>
                <Grid.RowDefinitions>
                    <RowDefinition Height="60"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Image Grid.Row="0" Grid.Column="1" Source="/Images/check.png" Stretch="Fill" Visibility="{Binding Checked}"/>
                <TextBlock Grid.Row="0" Grid.Column="0"  Tap="RemindName_Tap" HorizontalAlignment="Left" Text="{Binding Title}" TextWrapping="Wrap" Padding="10,2,0,0" Foreground="White" Height="40"  Margin="2,0,0,0" FontSize="24" Width="365"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>

這是一個綁定列表框。

如何在C#中更改圖像和文本塊中的列和“ Grid.Column”的值?

創建第二個視圖並在它們之間切換。 這是切換示例

public class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private Visibility _visibility1;
    public Visibility Visibility1
    {
        get { return _visibility1; }
        set
        {
            _visibility1 = value;
            OnPropertyChanged();
        }
    }

    private Visibility _visibility2;
    public Visibility Visibility2
    {
        get { return _visibility2; }
        set
        {
            _visibility2 = value;
            OnPropertyChanged();
        }
    }


    public void OnPropertyChanged([CallerMemberName] string property = "")
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(property));
    }
}

public partial class MainWindow : Window
{
    private ViewModel _vm = new ViewModel() { Visibility1 = Visibility.Visible, Visibility2 = Visibility.Collapsed };

    public MainWindow()
    {
        InitializeComponent();
        DataContext = _vm;
    }

    private void CheckBox_Checked(object sender, RoutedEventArgs e)
    {
        _vm.Visibility1 = Visibility.Collapsed;
        _vm.Visibility2 = Visibility.Visible;
    }

    private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
    {
        _vm.Visibility1 = Visibility.Visible;
        _vm.Visibility2 = Visibility.Collapsed;
    }
}

a

<StackPanel>
    <CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
    <TextBlock Text="ListBox1" Visibility="{Binding Visibility1}"/>
    <TextBlock Text="ListBox2" Visibility="{Binding Visibility2}"/>
</StackPanel>

TextBlock是您的兩個ListBox CheckBox (以及后面的一些代碼)用於模擬VisibilityX屬性的更改,通常在處理某些CommandSwapColumns時應發生此更改。

可以使用轉換器僅綁定到一個bool屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM