我正在尝试将列表视图项与不在模型中的数据绑定。我有这样的模型 -
public class Recording
{
public string ArtistName { get; set; }
public string CompositionName { get; set; }
public DateTime ReleaseDateTime { get; set; }
}
public ObservableCollection<Recording> Recordings = new ObservableCollection<Recording>();
public Visibility ButtonVisibility = Visibilty.Collasped;
Run Code Online (Sandbox Code Playgroud)
我尝试过的代码如下所示:
<ListView ItemsSource="{x:Bind ViewModel.Recordings}"
HorizontalAlignment="Center" VerticalAlignment="Center">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Recording">
<Button Content="OK" Visibility="{Binding ButtonVisibility, Mode=OneWay}"/>
<TextBlock Text="{Binding ArtistName, Mode=OneWay }"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
在这里,ButtonVisibility 绑定不起作用。
小智 6
无需额外 C# 代码即可实现此目的的简单方法是...
。
<ListView ItemsSource="{x:Bind ViewModel.Recordings}" HorizontalAlignment="Center" VerticalAlignment="Center">
<ListView.Resources>
<Button x:Name="RelayButtonVisibility" Visibility="{x:Bind ViewModel.ButtonVisibility, Mode=OneWay}"/>
</ListView.Resources>
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Recording">
<StackPanel Orientation="Horizontal">
<Button Content="OK" Visibility="{Binding Visibility, ElementName=RelayButtonVisibility}"/>
<TextBlock Text="{Binding ArtistName, Mode=OneWay }"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢使用额外的 UIElement,请在 Page 类中定义您自己的 MyVisibility DependencyProperty 或其他内容。并以同样的方式绑定它。
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |