gpt4 book ai didi

WPF Xaml 处理顺序

转载 作者:行者123 更新时间:2023-12-03 10:30:20 24 4
gpt4 key购买 nike

我有一个简单的客户地址表格。国家和州组合框链接到 ListCollectionViews。因此,当用户更改国家/地区设置时,可以在模型 View 中过滤状态列表。问题是当表单加载一些以前的信息时,状态组合框即使有数据也是空白的。似乎是因为它们放在 xaml 中的顺序。如果我把国家组合框放在国家之前,如果工作正常,但我希望国家在国家之后。有没有办法让 xaml 布局保持原样,但在状态之前处理国家组合框?

xml:

<StackPanel Orientation="Horizontal">
<TextBlock Height="23" Name="tbkMailState" Text="State/Province:" Width="80" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2" Foreground="Black" />
<ComboBox Height="23" Name="cmbMailState" Width="200" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2" Foreground="Black" ItemsSource="{Binding GeoStateListMail}" SelectedValue="{Binding OpenEntityListing.EntityMailAddress.GeoState_Id}" DisplayMemberPath="Name" SelectedValuePath="Id" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Height="23" Name="tbkMailCountry" Text="Country:" Width="80" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2" Foreground="Black" />
<ComboBox Height="23" Name="cmbMailCountry" Width="200" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2" Foreground="Black" ItemsSource="{Binding GeoCountryListMail, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedValue="{Binding OpenEntityListing.EntityMailAddress.GeoCountry_Id}" DisplayMemberPath="Name" SelectedValuePath="Id" IsSynchronizedWithCurrentItem="True" />
</StackPanel>

ViewModel 过滤器:
public void GeoCountry_CurrentChanged(object sender, EventArgs e)
{
GeoStateList.Filter = item =>
{
GeoState vitem = item as GeoState;
if ((OpenEntityListing == null) || (vitem == null))
{
return false;
}
return vitem.GeoCountry_Id == OpenEntityListing.EntityAddress.GeoCountry_Id;
};
}

最佳答案

依赖于正在处理的 xaml 的顺序会很糟糕。

当应该更新 ComboBox 并将 View 绑定(bind)到 ViewModel 上的一个额外属性时,尝试在 ViewModel 中找到合适的事件。

关于WPF Xaml 处理顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6938328/

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