我有一个 C# .NET 8.0 控制台应用程序,打算在 Windows 10 上运行。如何获取已安装打印机(比如说“Microsoft Print to PDF”)的默认页面方向?^
主页
/
user-4826147
Alexey Titov's questions
Alexey Titov
Asked:
2024-10-16 22:29:53 +0800 CST
我有一个 Prism 项目:CustomerView、CustomerViewModel、CustomerModel。后者具有属性
private int _id;
public int ID
{
get { return _id; }
set { SetProperty(ref _id, value); }
}
CustomerView 有一个 TextBox 来显示 ID。我想要的是 - 能够处理用户在该 TextBox 中输入一些字符串的情况。在 CustomerModel 或 CustomerViewModel 中处理。如果用户输入像“1abc”这样的字符串,CustomerModel.ID 上的属性设置器永远不会触发。我确实了解 ValidationRules,但那不是我需要的。我想得到那个“1abc”
Alexey Titov
Asked:
2024-10-12 22:31:09 +0800 CST
我有一个 MVVM(Prism)应用程序。UserControl
包含以下元素:
<Grid>
<ItemsControl x:Name="MyItemsControl"
ItemsSource="{Binding Path=OrderCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox x:Name="MyTextBox">
<TextBox.Text>
<Binding Path="ID" Mode="TwoWay">
<Binding.ValidationRules>
<vr:OrderIDValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Button x:Name="MyButton">
</Button>
</Grid>
OrderIDValidationRule 只是一个简单的验证规则,用于检查 ID 是否在有效范围内。来自 ViewModel 的代码:
public ObservableCollection<Order> OrderCollection;
public class Order : BindableBase
{
private int? _id;
public int? ID
{
get => _id;
set => SetProperty(ref _id, value);
}
}
如果 MyTextBox(带有任何 Order)包含一些错误值,是否有办法禁用 MyButton。例如,如果用户输入“abc”。在这种情况下,会显示验证错误,但绑定源不会更新 - 不确定是否INotifyDataErrorInfo
可以提供帮助
Alexey Titov
Asked:
2024-10-10 15:06:50 +0800 CST
我有这门课:
public class ShippingMethodMap
{
public string ShippingMethod { get; set; }
public int? MethodId { get; set; }
public bool IsManaged { get; set; }
public bool IsValid { get; set; }
}
数据存储在ObservableCollection<ShippingMethodMap> ShippingMethodMapCollection
,并显示在XAML
类似
<ItemsControl ItemsSource="{Binding Path=ShippingMethodMapCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="1" BorderThickness="1" BorderBrush="LightGray">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding Path=ShippingMethod}">
</TextBlock>
<TextBox Grid.Column="1"
Text="{Binding Path=MethodId}"
IsEnabled="{Binding Path=IsManaged}">
</TextBox>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
现在 - 如果 ShippingMethodMap.IsValid = false,我该如何将(不同项目的)前景色设置TextBlock
为TextBox
红色?