gpt4 book ai didi

c# - 如何在 WPF 中转换

转载 作者:太空狗 更新时间:2023-10-30 00:40:08 27 4
gpt4 key购买 nike

我碰巧需要将 Grid 的 DataContext 绑定(bind)到 listview 的 SelectedItem 属性

我可以毫无问题地做到这一点....但是,由于 Listview 的 SelectedItem 存储了一个对象,XAML 编辑器不知道它正在使用的类型,这会导致以下警告显示:“无法在类型为‘object’的数据上下文中解析属性 X”

有没有办法在其中一个绑定(bind)中指定对象的类型(我搜索了 WPF 转换但没有找到相关资源)

这是我的 XAML 的相关摘录:

<ListView x:Name="ListView" ItemsSource="{Binding LoginScreens}" Grid.Column="0" Grid.Row="0" SelectionMode="Single"/>
<Grid Grid.Column="1" Grid.Row="0" DataContext="{Binding SelectedItem, ElementName=ListView}">
<Grid.RowDefinitions>
/*rows*/
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
/*Columns*/
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="1" Style="{StaticResource TextBoxStyle}" Text="{Binding Name}"/>
<TextBox Grid.Row="1" Grid.Column="1" Style="{StaticResource TextBoxStyle}" Text="{Binding NameFr}"/>
<TextBox Grid.Row="2" Grid.Column="1" Style="{StaticResource TextBoxStyle}" IsEnabled="False" Text="{Binding Filename}"/>
<TextBox Grid.Row="3" Grid.Column="1" Style="{StaticResource TextBoxStyle}" IsEnabled="False" Text="{Binding SHA1}"/>
</Grid>

我在 TextBox 的绑定(bind)中尝试了以下语法,但没有用:

<TextBox Grid.Row="0" Grid.Column="1" Style="{StaticResource TextBoxStyle}" Text="{Binding (manifestEditor:LoginScreen.Filename)}"/>

但它会导致抛出关于 ListDictionary 中的键为空的错误,所以要么我遗漏了某些东西,要么这不是正确的方法。

编辑:

我希望尽可能只使用 XAML 来处理这个问题

最佳答案

您的代码对我来说工作正常。只是为了在这里添加一些新的和有用的东西是定义绑定(bind)到 SelectedItem 的另一种方法:

    <Grid>
<StackPanel>
<ListView x:Name="ListView" ItemsSource="{Binding LoginScreens}"
IsSynchronizedWithCurrentItem="True"
SelectionMode="Single"/>
<Grid DataContext="{Binding LoginScreens}">
<StackPanel>
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/>
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding NameFr}"/>
<TextBox Grid.Row="2" Grid.Column="1" IsEnabled="False" Text="{Binding Filename}"/>
<TextBox Grid.Row="3" Grid.Column="1" IsEnabled="False" Text="{Binding SHA1}"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>

IsSynchronizedWithCurrentItem 将绑定(bind)集合的默认 CollectionView 的 CurrentItem 与您控件的 SelectedItem 同步,并通过选择 Grid 的 DataContext 作为 ObservableCollection LoginScreens,您将根据 ListView 选择获得更新。

关于c# - 如何在 WPF 中转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com